[英]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.drop
和pd.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,但它会更有效地从一开始就使用正确读取你的数据header
, skiprows
等参数read_csv() /read_excel/read_table/et.c功能
将iloc
与reset_index
和rename_axis
( pandas
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.