python読み書きデータを読み、csvファイルを書きます。


pythonではデータ処理が便利です。よく使うのはファイルを読んだり書いたり、データを取ったりすることです。このブログでは主にその中のいくつかの使い方を紹介しています。Pandsは強力な分析構造化データのツールセットである。その使用の基礎はNumpyです。データマイニングとデータ解析に使用され、データ洗浄機能も提供されます。
一、パン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の内容を書いてください。以前の文章を検索したり、次の関連記事を見たりしてください。これからもよろしくお願いします。