pandas21 读csv文件read_csv(6.命名和使用列)(详细 tcy)

命名和使用列  2015/12/27
目录:
第1部分:csv文本文件读写

    pandas 读csv文件read_csv(1.文本读写概要)https://mp.csdn.net/postedit/85289371
    pandas 读csv文件read_csv(2.read_csv参数介绍)https://mp.csdn.net/postedit/85289928
    pandas 读csv文件read_csv(3.dtypes指定列数据类型)https://mp.csdn.net/postedit/85290575
    pandas 读csv文件read_csv(4.to_csv文本数据写)https://mp.csdn.net/postedit/85290962
    pandas 读csv文件read_csv(5.文本数据读写实例)https://mp.csdn.net/postedit/85291123
    pandas 读csv文件read_csv(6.命名和使用列)https://mp.csdn.net/postedit/85291430
    pandas 读csv文件read_csv(7.索引)https://mp.csdn.net/postedit/85291658
    pandas 读csv文件read_csv(8.方言和分隔符)https://mp.csdn.net/postedit/85291994
    pandas 读csv文件read_csv(9.浮点转换和NA值)https://mp.csdn.net/postedit/85292391
    pandas 读csv文件read_csv(10.注释和空行)https://mp.csdn.net/postedit/85292609
    pandas 读csv文件read_csv(11.日期时间处理) https://mp.csdn.net/postedit/85292925
    pandas 读csv文件read_csv(12.迭代和块)https://mp.csdn.net/postedit/85293639
    pandas 读csv文件read_csv(13.read_fwf读固定宽度数据)https://mp.csdn.net/postedit/85294010
    
第2部分:
    pandas hdf文件读写简要https://mp.csdn.net/postedit/85294299
    pandas excel读写简要https://mp.csdn.net/postedit/85294545
    
第3部分:
    python中csv模块用法tcy https://mp.csdn.net/postedit/85228189
    pandas读csv文件read_csv错误解决办法7种https://mp.csdn.net/postedit/85228808
    pandas to_string用法https://mp.csdn.net/postedit/85294935
1.处理列名 
# 文件可能有也可能没有标题行。pandas假设第一行应该用作列名:

data = 'a,b,c\n1,2,3\n4,5,6\n7,8,9'

pd.read_csv(StringIO(data)) #列名为a,b,c
pd.read_csv(StringIO(data), names=['s1', 's2', 's3'], header=0)   #列名为s1,s2,s3,丢弃标题行
pd.read_csv(StringIO(data), names=['s1', 's2', 's3'], header=None)#列名为s1,s2,s3,数据中保留标题行

data = 'skip this skip it\na,b,c\n1,2,3\n4,5,6\n7,8,9'
pd.read_csv(StringIO(data), header=1)                             #列名为a,b,c;标题位于第2行,数据跳过第1行 
2.重复名称解析 
# 如果文件或标题包含重复的名称,则pandas默认会区分它们以防止覆盖数据:
data = 'a,b,a\n0,1,2\n3,4,5'
pd.read_csv(StringIO(data),mangle_dupe_cols=True)  #列名为a,b,a.1 # 标题包含重复的名称
pd.read_csv(StringIO(data), mangle_dupe_cols=False)#出现重复数据抛出ValueError 
3.过滤列usecols
# 该usecols参数允许您使用列名,位置号或可调用来选择文件中列的任何子集:
data = 'a,b,c,d\n1,2,3,foo\n4,5,6,bar\n7,8,9,baz'

pd.read_csv(StringIO(data))                    #4列数据,列名为a,b,c,d
pd.read_csv(StringIO(data), usecols=['b', 'd'])#2列数据,列名为b,d
pd.read_csv(StringIO(data), usecols=[0, 2, 3]) #2列数据,列名为a,c,d
pd.read_csv(StringIO(data), usecols=lambda x: x.upper() in ['A', 'C']) #2列数据,列名为a,c
pd.read_csv(StringIO(data), usecols=lambda x: x.upper() in ['A', 'c']) #1列数据,列名为a

# 指定在最终结果中不使用哪些列:
pd.read_csv(StringIO(data), usecols=lambda x: x not in ['a', 'c'])     #2列数据,列名为b,d
4.索引列和尾随分隔符 
# 如果文件的列数据多于列名数,则第一列将用作DataFrame行名:

data = 'a,b,c\n4,apple,bat,5.7\n8,orange,cow,10'
pd.read_csv(StringIO(data))                           #列名为a,b,c
data = 'index,a,b,c\n4,apple,bat,5.7\n8,orange,cow,10'
pd.read_csv(StringIO(data), index_col=0)              #列名为a,b,c;'index'为行名

# 数据行的末尾使用分隔符:禁用索引列推断并丢弃最后一列用index_col=False
data = 'a,b,c\n' \
       '4,apple,bat,\n' \
       '8,orange,cow,'
pd.read_csv(StringIO(data))

      a    b   c
4 apple  bat NaN
8 orange cow NaN

pd.read_csv(StringIO(data), index_col=False)

  a     b    c
0 4 apple  bat
1 8 orange cow

# 用usecols选项解析数据子集,则 index_col规范基于该子集,而不是原始数据。
pd.read_csv(StringIO(data), usecols=['b', 'c'])

    b   c
4 bat NaN
8 cow NaN

pd.read_csv(StringIO(data), usecols=['b', 'c'], index_col=0)

    b   c
4 bat NaN
8 cow NaN 

猜你喜欢

转载自blog.csdn.net/tcy23456/article/details/85291430
今日推荐