Pandas csv读写文件
我们知道,文件的读写操作属于计算机的 IO 操作,Pandas IO 操作提供了一些读取器函数,比如 pd.read_csv()、pd.read_json 等,它们都返回一个 Pandas 对象。
在 Pandas 中用于读取文本的函数有两个,分别是: read_csv() 和 read_table() ,它们能够自动地将表格数据转换为 DataFrame 对象。其中 read_csv 的语法格式,如下:
pandas.read_csv(filepath_or_buffer, sep=',', delimiter=None, header='infer',names=None, index_col=None, usecols=None)
下面,新建一个 txt 文件,并添加以下数据:
将 txt 文件另存为 person.csv 文件格式,直接修改文件扩展名即可。接下来,对此文件进行操作。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
read_csv()
read_csv() 表示从 CSV 文件中读取数据,并创建 DataFrame 对象。
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
1) 自定义索引
在 CSV 文件中指定了一个列,然后使用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
2) 查看每一列的dtype
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 类型,因为我们已经在上述代码中做了类型转换。
3) 更改文件标头名
使用 names 参数可以指定头文件的名称。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
假如原标头名并没有定义在行,您也可以传递相应的行号来删除它。
4) 跳过指定的行数
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
注意:包含标头所在行。
to_csv()
Pandas 提供的 to_csv() 函数用于将 DataFrame 转换为 CSV 数据。如果想要把 CSV 数据写入文件,只需向函数传递一个文件对象即可。否则,CSV 数据将以字符串格式返回。下面看一组简单的示例:
import pandas as pd
data = {'Name': ['ith', '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 ith 101 Python
1 Parker 102 JavaScript
csv数据:
,Name,ID,Language
0,ith,101,Python
1,Parker,102,JavaScript
指定 CSV 文件输出时的分隔符,并将其保存在 pandas.csv 文件中,代码如下:
import pandas as pd
#注意:pd.NaT表示null缺失数据
data = {'Name': ['ith', 'Parker'], 'ID': [101, pd.NaT], 'Language': ['Python', 'JavaScript']}
info = pd.DataFrame(data)
csv_data = info.to_csv("C:/Users/Administrator/Desktop/pandas.csv",sep='|')
- 随机文章
- 穷游 马尔代夫(穷游马尔代夫攻略:如何在这片天堂岛国度度过完美假期)
- 十一团马尔代夫(十一团护林员:马尔代夫之旅)
- 新航 马尔代夫 里程(新航推出马尔代夫航班:用里程兑换,轻松飞行!)
- 中信马尔代夫风景(探索令人叹为观止的马尔代夫海洋风光)
- 长乐海边马尔代夫(长乐海边中国游客在马尔代夫溺亡事件-新闻简报)
- 到马尔代夫去度假(旅游天堂!迎接马尔代夫美丽度假胜地)
- 云南 马尔代夫(云南旅游胜地:美如马尔代夫)
- 文化熏陶马尔代夫(文化之旅,探寻马尔代夫的历史和传统)
- 梧州马尔代夫地址(梧州市新开岛——探寻中国式马尔代夫)
- 广东马尔代夫打工(广东青年岛国梦:马尔代夫打工赚钱记)
- 怎样挑选马尔代夫(如何选择适合你的马尔代夫度假胜地?)
- 湖北襄阳马尔代夫(襄阳市建成中国首个马尔代夫主题公园)
- 尤文米兰马尔代夫(尤文与米兰球员飞赴马尔代夫享受假期)
- 嘉鱼 马尔代夫(《海上新天堂,嘉鱼亲测》——)
- 色彩 马尔代夫(美丽马尔代夫:大自然中的瑰宝)
- 武磊马尔代夫照片(武磊晒出度假马尔代夫照片,心情愉悦)
- 最美的海马尔代夫(探秘海马尔代夫,享受最佳旅行体验!)
- 热浪 马尔代夫(马尔代夫酷暑难挡,热浪来袭!)
- 曼谷马尔代夫清吧(曼谷新清吧推出马尔代夫主题水疗服务)
- 最美马尔代夫图片(壮美风光!赏析马尔代夫绝美海岛风光)
- 南海造岛马尔代夫(马尔代夫等国反对中国在南海岛屿建设)
- 曼谷马尔代夫地址(曼谷购物中心内开设马尔代夫主题餐厅)
- 徐州马尔代夫在哪(徐州哪里有类似马尔代夫的度假胜地?)
- 海南马尔代夫公交(海南岛公交一日游,仿佛置身马尔代夫)
- 烟台马尔代夫长岛(烟台重返马尔代夫!长岛恢复接待游客)
- 营口马尔代夫公园(营口市新建的马尔代夫公园向游客开放)
- 李哲 马尔代夫(李哲探秘马尔代夫:海豚、沙滩和潜水!)
- 打捞马尔代夫视频(视频揭示马尔代夫海底景象,美不胜收)
- 谢晖头球马尔代夫(谢晖头球绝杀马尔代夫,国足三连胜。)
- 网友中国马尔代夫(中国人心目中的度假天堂——马尔代夫)
