繁体   English   中英

Pandas Dataframe删除行并设置列名

[英]Pandas Dataframe dropping rows and setting column names

我有一个这样的熊猫数据框:

      1     2       3 
0
NaN   ingr   contr   count
2.0   water  0.02    275
3.0   oil    0.23    11
.....

我想将其转移到此:

ingr   contr   count
water  0.02    275
oil    0.23    11
....

我试图使用pd.droppd.set_index()等,但是我不知道该怎么做。 有人可以帮助我吗?

尝试iloc索引器:

In [66]: df
Out[66]:
          1      2      3
NaN    ingr  contr  count
 2.0  water   0.02    275
 3.0    oil   0.23     11

In [67]: df.columns = df.iloc[0]

In [68]: df = df.iloc[1:].reset_index()

In [69]: df
Out[69]:
nan  index   ingr contr count
0      2.0  water  0.02   275
1      3.0    oil  0.23    11

PS,但它会更有效地从一开始就使用正确读取你的数据headerskiprows等参数read_csv() /read_excel/read_table/et.c功能

ilocreset_indexrename_axispandas 0.18.0新增功能):

df.columns = df.iloc[0,:]
print (df.iloc[1:,:].reset_index().rename_axis(None, axis=1))
     0   ingr contr count
0  2.0  water  0.02   275
1  3.0    oil  0.23    11

如果不需要旧索引,则添加参数drop=True

df.columns = df.iloc[0,:]
print (df.iloc[1:,:].reset_index(drop=True).rename_axis(None, axis=1))
    ingr contr count
0  water  0.02   275
1    oil  0.23    11

如果您需要第一列作为索引,请使用set_index

df.columns = df.iloc[0,:]
print (df.iloc[1:,:].set_index('ingr').rename_axis(None, axis=1).rename_axis(None))
      contr count
water  0.02   275
oil    0.23    11

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM