欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

pandas之read_csv

程序员文章站 2022-05-31 23:26:58
...
读取csv文件
df = pd.read_csv('/Users/apple/Desktop/zhanglutest/ts.csv',sep=';',encoding='gbk')
read_csv函数有很多参数,本人只了解了主要的参数,记录如下:
filepath_or_buffer :str,csv文件的存放路径
sep : str, 默认为‘,’。分隔符,例如读取的csv文件的分隔符是分号,则设置sep=';'
delimiter : str, default None。定界符,备选分隔符(如果指定该参数,则sep参数失效)
delim_whitespace : boolean, default False。指定空格是否作为分隔符使用,等效于设定sep='\s+'。如果这个参数设定为Ture那么delimiter 参数失效。在新版本0.18.1支持。
header : int or list of ints, default ‘infer’。指定哪一行是列名,当csv中第一行是列名时,设置header=0,当csv中不存在列名时,设置header=None,如果设置header=[0,3],那么表示第0行和第2行数据是列名,则行索引从第3行开始计算,第1行被丢弃。详情看列子:
df = pd.read_csv('/Users/apple/Desktop/zhanglutest/ts.csv',sep=';',encoding='gbk')
      name   age     sex   address  company
0  zhangsan  20.0    male  chengnan   xiaomi
1      lisi  22.0  female     深圳宝安区  kingdee
2     hello  12.0    male     深圳南山区       sf
3      ayry  18.0  female     广州白云区   pingan
4       srf  25.0     NaN     广州白云区       呵呵
5     ar6uu   NaN    male     北京海淀区      NaN


df = pd.read_csv('/Users/apple/Desktop/zhanglutest/ts.csv',sep=';',header=0,encoding='gbk')
      name   age     sex   address  company
0  zhangsan  20.0    male  chengnan   xiaomi
1      lisi  22.0  female     深圳宝安区  kingdee
2     hello  12.0    male     深圳南山区       sf
3      ayry  18.0  female     广州白云区   pingan
4       srf  25.0     NaN     广州白云区       呵呵
5     ar6uu   NaN    male     北京海淀区      NaN

        csv中第0行为列名,数据从第1行开始,有列名时设置header=0与不设置此参数结果一样。

df = pd.read_csv('/Users/apple/Desktop/zhanglutest/ts.csv',sep=';',header=1,encoding='gbk')
    zhangsan  20.0    male  chengnan   xiaomi
0      lisi  22.0  female     深圳宝安区  kingdee
1     hello  12.0    male     深圳南山区       sf
2      ayry  18.0  female     广州白云区   pingan
3       srf  25.0     NaN     广州白云区       呵呵
4     ar6uu   NaN    male     北京海淀区      NaN

       header=1表示csv中第1行为列名,第0行被丢弃,数据从第2行开始。

df = pd.read_csv('/Users/apple/Desktop/zhanglutest/ts.csv',sep=';',header=None,encoding='gbk')
          0    1       2         3        4
0      name  age     sex   address  company
1  zhangsan   20    male  chengnan   xiaomi
2      lisi   22  female     深圳宝安区  kinked
3     hello   12    male     深圳南山区       sf
4      ayry   18  female     广州白云区   pingan
5       srf   25     NaN     广州白云区       呵呵
6     ar6uu  NaN    male     北京海淀区      NaN

       header=None表示没有列名,数据从0行开始,pandas自动赋列名0,1,2,3,4

df = pd.read_csv('/Users/apple/Desktop/zhanglutest/ts.csv',sep=';',header=[0,2],encoding='gbk')
    name   age     sex address company
    lisi    22  female   深圳宝安区 kingdee
0  hello  12.0    male   深圳南山区      sf
1   ayry  18.0  female   广州白云区  pingan
2    srf  25.0     NaN   广州白云区      呵呵
3  ar6uu   NaN    male   北京海淀区     NaN

       header=[0,2]表示csv的第0行、第2行都是列名,第1行数据被丢弃,数据从第3行开始。

names : array-like, default None
用于结果的列名列表,如果数据文件中没有列标题行,就需要执行header=None。通过设置names给数据设置列名。
df = pd.read_csv('/Users/apple/Desktop/zhanglutest/ts.csv',sep=';',header=None,names=['h1','h2','h3','h4','h5'],encoding='gbk')
         h1   h2      h3        h4       h5
0      name  age     sex   address  company
1  zhangsan   20    male  chengnan   xiaomi
2      lisi   22  female     深圳宝安区  kingdee
3     hello   12    male     深圳南山区       sf
4      ayry   18  female     广州白云区   pingan
5       srf   25     NaN     广州白云区       呵呵
6     ar6uu  NaN    male     北京海淀区      NaN

        不设置header参数时,设置了names,则任务csv中没有列名,会将第0行当做数据处理,如下例子:
df = pd.read_csv('/Users/apple/Desktop/zhanglutest/ts.csv',sep=';',names=['h1','h2','h3','h4','h5'],encoding='gbk')
         h1   h2      h3        h4       h5
0      name  age     sex   address  company
1  zhangsan   20    male  chengnan   xiaomi
2      lisi   22  female     深圳宝安区  kingdee
3     hello   12    male     深圳南山区       sf
4      ayry   18  female     广州白云区   pingan
5       srf   25     NaN     广州白云区       呵呵
6     ar6uu  NaN    male     北京海淀区      NaN


encoding : str, default None
指定字符集类型,通常指定为'utf-8',当csv中存在中文时,如果设置utf-8报错,可以试试gbk。
        read_csv的参数还有很多,常用的是上面这些,后续用到了其他参数再记录
相关标签: pandas