365Tools
发布时间:2024-03-18 11:30:01
在《Python Pandas读取文件》中,我们讲解了多种用 Pandas 读写文件的方法。本节我们讲解如何应用这些方法 。pandas.read_csv(filepath_or_buffer, sep=',', delimiter=None, header='infer',names=None, index_col=None, usecols=None)下面,新建一个 txt 文件,并添加以下数据:
ID,Name,Age,City,Salary 1,Jack,28,Beijing,22000 2,Lida,32,Shanghai,19000 3,John,43,Shenzhen,12000 4,Helen,38,Hengshui,3500将 txt 文件另存为 person.csv 文件格式,直接修改文件扩展名即可。接下来,对此文件进行操作。
import pandas as pd
#需要注意文件的路径
df=pd.read_csv("C:/Users/Administrator/Desktop/person.csv")
print (df)
输出结果:
ID Name Age City Salary 0 1 Jack 28 Beijing 22000 1 2 Lida 32 Shanghai 19000 2 3 John 43 Shenzhen 12000 3 4 Helen 38 Hengshui 3500
index_col可以实现自定义索引。
import pandas as pd
df=pd.read_csv("C:/Users/Administrator/Desktop/person.csv",index_col=['ID'])
print(df)
输出结果:
Name Age City Salary
ID
1 Jack 28 Beijing 22000
2 Lida 32 Shanghai 19000
3 John 43 Shenzhen 12000
4 Helen 38 Hengshui 3500
import pandas as pd
#转换salary为float类型
df=pd.read_csv("C:/Users/Administrator/Desktop/person.csv",dtype={'Salary':np.float64})
print(df.dtypes)
输出结果:
ID int64 Name object Age int64 City object Salary float64 dtype: object注意:默认情况下,Salary 列的 dtype 是 int 类型,但结果显示其为 float 类型,因为我们已经在上述代码中做了类型转换。
import pandas as pd
df=pd.read_csv("C:/Users/Administrator/Desktop/person.csv",names=['a','b','c','d','e'])
print(df)
输出结果:
a b c d e
0 ID Name Age City Salary
1 1 Jack 28 Beijing 22000
2 2 Lida 32 Shanghai 19000
3 3 John 43 Shenzhen 12000
4 4 Helen 38 Hengshui 3500
注意:文件标头名是附加的自定义名称,但是您会发现,原来的标头名(列标签名)并没有被删除,此时您可以使用header参数来删除它。
import pandas as pd
df=pd.read_csv("C:/Users/Administrator/Desktop/person.csv",names=['a','b','c','d','e'],header=0)
print(df)
输出结果:
a b c d e 0 1 Jack 28 Beijing 22000 1 2 Lida 32 Shanghai 19000 2 3 John 43 Shenzhen 12000 3 4 Helen 38 Hengshui 3500假如原标头名并没有定义在第一行,您也可以传递相应的行号来删除它。
skiprows参数表示跳过指定的行数。
import pandas as pd
df=pd.read_csv("C:/Users/Administrator/Desktop/person.csv",skiprows=2)
print(df)
输出结果:
2 Lida 32 Shanghai 19000 0 3 John 43 Shenzhen 12000 1 4 Helen 38 Hengshui 3500注意:包含标头所在行。
import pandas as pd
data = {'Name': ['Smith', 'Parker'], 'ID': [101, 102], 'Language': ['Python', 'JavaScript']}
info = pd.DataFrame(data)
print('DataFrame Values:\n', info)
#转换为csv数据
csv_data = info.to_csv()
print('\nCSV String Values:\n', csv_data)
输出结果:
DataFrame:
Name ID Language
0 Smith 101 Python
1 Parker 102 JavaScript
csv数据:
,Name,ID,Language
0,Smith,101,Python
1,Parker,102,JavaScript
指定 CSV 文件输出时的分隔符,并将其保存在 pandas.csv 文件中,代码如下:
import pandas as pd
#注意:pd.NaT表示null缺失数据
data = {'Name': ['Smith', 'Parker'], 'ID': [101, pd.NaT], 'Language': ['Python', 'JavaScript']}
info = pd.DataFrame(data)
csv_data = info.to_csv("C:/Users/Administrator/Desktop/pandas.csv",sep='|')