pandas基础:文件的读取和写入
文件的读取和写入
读取csv文件
csv文件:
name,age,city
Alice,25,New York
Bob,30,Los Angeles
read_csv('filename')
-
header:如 何处理文件的第一行。
header=0
将第一行作为列名,header=None
表示文件中没有列名,所有行都是数据。import numpy as np import pandas as pd # 文件中没有列名,所有行都是数据。 df = pd.read_csv('xuexi.csv', header=None) print('文件中没有列名,所有行都是数据') print(df) # 0 1 2 # 0 name age city # 1 Alice 25 New York # 2 Bob 30 Los Angeles print('####################') # 文件中没有列名,第一行是列名。 df = pd.read_csv('xuexi.csv', header=0) print('文件中没有列名,第一行是列名') print(df) # name age city # 0 Alice 25 New York # 1 Bob 30 Los Angeles
每一行前面的数字表示索引号。
-
index_col:将某列或多列作为索引列。
参数可以是一个整数(列的索引位置)、一个字符串(列名)、一个整数列表或字符串列表。默认不将任何列作为索引。
import numpy as np import pandas as pd df = pd.read_csv('xuexi.csv', header=0, index_col=1) # 等价于 index_col='age' print(df) # name city # age # 25 Alice New York # 30 Bob Los Angeles
-
usecols:指定读取哪些列。
参数可以是一个整数列表(列的索引位置)、一个字符串列表(列名)或一个函数。默认读取全部列。
import numpy as np import pandas as pd df = pd.read_csv('xuexi.csv', header=0, usecols=[0,1]) # 等价于 usecols=['name', 'age'] print(df) # name age # 0 Alice 25 # 1 Bob 30
-
parse_dates:将某些列解析为日期时间格式。
参数可以是一个整数列表(列的索引位置)、一个字符串列表(列名)或一个布尔值。默认不解析任何列为日期时间格式。
-
nrows:指定读取的行数。
参数是一个整数,表示读取的行数。默认读取全部行。
-
sep:自定义分隔符。
参数用于指定分隔符(分隔列的字符)。默认值是逗号。其他分隔符要使用sep属性。
engine用于指定pandas解析的引擎。如果是简单分隔符用‘C’即可,如果涉及正则表达式则要使用‘Python’。
import numpy as np import pandas as pd tb = pd.read_table('xuexi.txt', sep=' \|\|\|\| ', engine='python') print(tb)
一般在数据写入中,最常用的操作是把index
设置为False
,特别当索引没有特殊意义的时候,这样的行为能把索引在保存的时候去除。
如果不去除索引:
import numpy as np
import pandas as pd
df = pd.read_csv('xuexi.csv')
print(df)
df.to_csv('xuexi.csv')
经过两次运行后,就是下面结果:
https://www.datawhale.cn/learn/content/3/81