您的位置:首页 > 其它

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

2018-12-27 16:55 429 查看
[code]命名和使用列  2015/12/27
[code]目录:
第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
[code]1.处理列名 
[code]# 文件可能有也可能没有标题行。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行
[code]2.重复名称解析 
[code]# 如果文件或标题包含重复的名称,则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
[code]3.过滤列usecols
[code]# 该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
[code]4.索引列和尾随分隔符 
[code]# 如果文件的列数据多于列名数,则第一列将用作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 

 

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: