python読み書きデータを読み、csvファイルを書きます。
pythonではデータ処理が便利です。よく使うのはファイルを読んだり書いたり、データを取ったりすることです。このブログでは主にその中のいくつかの使い方を紹介しています。Pandsは強力な分析構造化データのツールセットである。その使用の基礎はNumpyです。データマイニングとデータ解析に使用され、データ洗浄機能も提供されます。
一、パンdasはcsvファイルを読みだします。
データ処理中はcsvファイルが多く使われています。
パンダs.read_csv(filepath_)or_buffer、sep=',delimiter=None,header='infer',names=None,index_col=None、usecols=None、squeeze=False、prefix=None、magle_dupecols=True、dtype=None、engine=None、converters=None、true_values=None、false_values=None、skyinitialspace=False、skyprows=None、nrows=None、な_values=None、keep_default_な=True、なぃfilter=True、verbose=False、skypeブランクラインナップ=True、パーシャdates=False、infer_datetimeformat=False、keep_date_col=False、date_parser=None、dayfirst=False、iterator=False、chunksize=None、copressition='infer'、thousads=None、decimal=b'、line terminator=None、quot techar=''cols=None、error_bad_ライン=True、warn_bad_ライン=True、skyipfooter=0、double=True、delim_ホワイトパス=False、low_memory=True,memorymap=False、float_precision=None)
常用パラメータ説明:read_csvとread_テーブルの一般的なパラメータ(より多くのパラメータは公式マニュアルを参照):
例:
行データを抽出:
loc関数:行索引「Index」の具体的な値によって行データを取る(「Index」を「A」とする行)
iloc関数:行番号で行データを取ります。2行目のデータを取ります。
pandsは複数組のリストをcsvに書き込みます。
一行を書き込みたいなら、つまりあなたが記憶しているリストが一行のデータです。この行のデータをcsvファイルに書き込みたいです。
この時はcsvの方法を使って、一行ずつ書いてもいいです。
ファイルを開くたびにパラメータnewline='を追加することで解決策が自動的に空欄になります。
txtファイルに書き込むのは似ています。
(1)txtデータファイルを作成し、ファイルを閉じてください。でないと、ファイルの内容が読めません。
(2)txtファイルを読みだします。
1)表示次元:data.shape
1)NaN値の処理:空の値を数字0で埋める
2)文字フィールドの文字スペースをクリアします。
文字列(str)の頭と尾のスペース、および頭の尾にある\tなどを削除します。
『Pythonのパンdas概要』
『Pandsのlocとiloc関数の使い方の詳細(ソース+インスタンス)』
ここではpythonについてcsvファイルを読み、書いてください。これについて紹介します。csvの内容を書いてください。以前の文章を検索したり、次の関連記事を見たりしてください。これからもよろしくお願いします。
一、パンdasはcsvファイルを読みだします。
データ処理中はcsvファイルが多く使われています。
import pandas as pd
data = pd.read_csv('F:/Zhu/test/test.csv')
下はpd.read_を見ます。csvでよく使われるパラメータ:パンダs.read_csv(filepath_)or_buffer、sep=',delimiter=None,header='infer',names=None,index_col=None、usecols=None、squeeze=False、prefix=None、magle_dupecols=True、dtype=None、engine=None、converters=None、true_values=None、false_values=None、skyinitialspace=False、skyprows=None、nrows=None、な_values=None、keep_default_な=True、なぃfilter=True、verbose=False、skypeブランクラインナップ=True、パーシャdates=False、infer_datetimeformat=False、keep_date_col=False、date_parser=None、dayfirst=False、iterator=False、chunksize=None、copressition='infer'、thousads=None、decimal=b'、line terminator=None、quot techar=''cols=None、error_bad_ライン=True、warn_bad_ライン=True、skyipfooter=0、double=True、delim_ホワイトパス=False、low_memory=True,memorymap=False、float_precision=None)
常用パラメータ説明:read_csvとread_テーブルの一般的なパラメータ(より多くのパラメータは公式マニュアルを参照):
filepath_or_buffer #
sep / delimiter , , , dataframe
header ,header=None( names , 0,1,2,...),header=0( )
names header=None, names ! 。
shkiprows= 10 #
nrows = 10 # 10
usecols=[0,1,2,...] # , ,
parse_dates = ['col_name'] #
index_col = None /False /0, index ,0 , 。 / / ( )
error_bad_lines = False # , , ,
na_values = 'NULL' # NULL
encoding='utf-8' # , utf-8
csv/txt/tsvファイルを読み、DataFrameタイプのオブジェクトを返します。例:
import pandas as pd
data = pd.read_csv('F:/Zhu/test/test.csv')
print(data)
name age birth
0 zhu 20 2000.1.5
1 wang 20 2000.6.18
2 zhang 21 1999.11.11
3 zhu 22 1998.10.24
パンダスはiloc、locでデータを抽出します。行データを抽出:
loc関数:行索引「Index」の具体的な値によって行データを取る(「Index」を「A」とする行)
iloc関数:行番号で行データを取ります。2行目のデータを取ります。
import pandas as pd
import numpy as np
# Dataframe
data = pd.DataFrame(np.arange(16).reshape(4, 4), index=list('abcd'), columns=list('ABCD'))
print(data)
A B C D
a 0 1 2 3
b 4 5 6 7
c 8 9 10 11
d 12 13 14 15
loc抽出'a'の行:
print(data.loc['a'])
A 0
B 1
C 2
D 3
Name: a, dtype: int32
iloc抽出2行目:
print(data.iloc[2])
A 8
B 9
C 10
D 11
Name: c, dtype: int32
列データの抽出:
print(data.loc[:, ['A']])# 'A' , data.loc[:,['A','B']]
A
a 0
b 4
c 8
d 12
print(data.iloc[:, [0]])
A
a 0
b 4
c 8
d 12
指定された行を抽出し、列を指定します。
print(data.loc[['a','b'],['A','B']]) # index 'a','b', 'A','B'
A B
a 0 1
b 4 5
print(data.iloc[[0,1],[0,1]]) # 0、1 , 0、1
A B
a 0 1
b 4 5
すべての行のすべての列を抽出します。
print(data.loc[:,:])# A,B,C,D
print(data.iloc[:,:])
A B C D
a 0 1 2 3
b 4 5 6 7
c 8 9 10 11
d 12 13 14 15
指定されたデータから行を抽出します。
print(data.loc[data['A']==0])# data ( : A 0 )
A B C D
a 0 1 2 3
二、パンdasはcsvファイルを書き込みます。pandsは複数組のリストをcsvに書き込みます。
import pandas as pd
#
a = [1,2,3]
b = [4,5,6]
# key csv
dataframe = pd.DataFrame({'a_name':a,'b_name':b})
# DataFrame csv,index ,default=True
dataframe.to_csv("test.csv",index=False,sep=',')
結果:一行を書き込みたいなら、つまりあなたが記憶しているリストが一行のデータです。この行のデータをcsvファイルに書き込みたいです。
この時はcsvの方法を使って、一行ずつ書いてもいいです。
import csv
with open("test.csv","w") as csvfile:
writer = csv.writer(csvfile)
# columns_name
writer.writerow(["index","a_name","b_name"])
# writerow
#write.writerow([0,1,2])
# writerows
writer.writerows([[0,1,3],[1,2,3],[2,3,4]])
ファイルを開くたびにパラメータnewline='を追加することで解決策が自動的に空欄になります。
import csv
with open("F:/zhu/test/test.csv","w", newline='') as csvfile:
writer = csv.writer(csvfile)
# columns_name
writer.writerow(["index","a_name","b_name"])
# writerows
writer.writerows([[0,1,3],[1,2,3],[2,3,4]])
txtファイルに書き込むのは似ています。
(1)txtデータファイルを作成し、ファイルを閉じてください。でないと、ファイルの内容が読めません。
(2)txtファイルを読みだします。
# txt
file=open("G:\\info.txt",'r',encoding='utf-8')
userlines=file.readlines()
file.close()
for line in userlines:
username=line.split(',')[0] #
password=line.split(',')[1] #
print(username,password)
三、パンダスはデータテーブルの情報を調べます。1)表示次元:data.shape
import pandas as pd
data = pd.read_csv('F:/Zhu/test/test.csv')
print(data)
print(data.shape)
index a_name b_name
0 0 1 3
1 1 2 3
2 2 3 4
(3, 3)
2)データテーブルの基本情報を表示する:data.info
import pandas as pd
data = pd.read_csv('F:/Zhu/test/test.csv')
print(data)
print(data.info)
index a_name b_name
0 0 1 3
1 1 2 3
2 2 3 4
<bound method DataFrame.info of index a_name b_name
0 0 1 3
1 1 2 3
2 2 3 4>
3)各行の書式を表示する:data.dtype
import pandas as pd
data = pd.read_csv('F:/Zhu/test/test.csv')
print(data.dtypes)
index int64
a_name int64
b_name int64
dtype: object
4)前2行のデータ、後2行のデータを確認する
df.head() # 10 , : head ,
df.tail() # 10
import pandas as pd
data = pd.read_csv('F:/Zhu/test/test.csv')
print(data)
print(data.head(2))
print(data.tail(2))
index a_name b_name
0 0 1 3
1 1 2 3
2 2 3 4
index a_name b_name
0 0 1 3
1 1 2 3
index a_name b_name
1 1 2 3
2 2 3 4
四、データ洗浄1)NaN値の処理:空の値を数字0で埋める
data.fillna(value=0,inplace=True)
注意:df.fillnaはすぐには有効になりません。inplace=Trueを設定する必要があります。2)文字フィールドの文字スペースをクリアします。
文字列(str)の頭と尾のスペース、および頭の尾にある\tなどを削除します。
data['customername']=data['customername'].map(str.strip)# customername
3)大文字小文字変換
data['customername']=data['customername'].str.lower()
4)重複した値を削除する
data.drop_duplicates(['customername'],inplace=True)
5)データ置換
data['customername'].replace('111','qqq',inplace=True)
参考:『Pythonのパンdas概要』
『Pandsのlocとiloc関数の使い方の詳細(ソース+インスタンス)』
ここではpythonについてcsvファイルを読み、書いてください。これについて紹介します。csvの内容を書いてください。以前の文章を検索したり、次の関連記事を見たりしてください。これからもよろしくお願いします。