python 根据csv表头、列号读取数据

2021-01-14 16:18:15 浏览数 (2)

读取csv文件

cvs数据截图如下

设置index_col=0,目的是设置第一列name为index(索引),方便下面示例演示

代码语言:javascript复制
data = pandas.read_csv(input1, index_col=0)

输出结果

代码语言:javascript复制
        price  o_price  date  quan
name                              
wood    85.00    49.99  2006   797
chair  102.50    49.99  2006   799
bed     77.00    49.99  2006   795
lamp   162.50    49.99  2006   800
sofa   699.99   269.99  2002  3094
table  602.00   269.99  2002  3093

根据表头获取列数据

代码语言:javascript复制
data[['o_price', 'quan']
# 或者
data.loc[:, ['o_price', 'quan']

输出结果

代码语言:javascript复制
       o_price  quan
name                
wood     49.99   797
chair    49.99   799
bed      49.99   795
lamp     49.99   800
sofa    269.99  3094
table   269.99  3093

根据列号读取列数据

代码语言:javascript复制
data.iloc[:, [3, 4]]

输出结果

代码语言:javascript复制
       date  quan
name             
wood   2006   797
chair  2006   799
bed    2006   795
lamp   2006   800
sofa   2002  3094
table  2002  3093

根据index名获取行数据

代码语言:javascript复制
data.loc[['wood', 'sofa'], :]

输出结果

代码语言:javascript复制
       price  o_price  date  quan
name                             
wood   85.00    49.99  2006   797
sofa  699.99   269.99  2002  3094

根据列号读取行数据

代码语言:javascript复制
data.iloc[[0, 1], :]

输出结果

代码语言:javascript复制
       price  o_price  date  quan
name                             
wood    85.0    49.99  2006   797
chair  102.5    49.99  2006   799

iloc和loc区别

loc是根据dataframe的具体标签选取列,而iloc是根据标签所在的位置,从0开始计数。

0 人点赞