我使用pandas有以下数据框:
具有nan的标题列元素应该说最后一个单词。因此,列标题应为:
nan Ciclo室内Ciclo室内Ciclo室内Ciclo室内泵身体泵....
在此之后,我想通过这项运动进行分组(循环室内等等)。
答案 0 :(得分:1)
您可以将Series.fillna
与method='ffill'
(.ffill
)一起使用,但不能与Index
一起使用,因此首先需要Index.to_series
:
cols = [np.nan, 'Ciclo Indoor', np.nan, np.nan, 'Body Pump', np.nan, np.nan]
df = pd.DataFrame([[1,0,1,2,1,0,1]], columns = cols)
print (df)
NaN Ciclo Indoor NaN NaN Body Pump NaN NaN
0 1 0 1 2 1 0 1
df.columns = df.columns.to_series().ffill()
print (df)
NaN Ciclo Indoor Ciclo Indoor Ciclo Indoor Body Pump Body Pump \
0 1 0 1 2 1 0
Body Pump
0 1
列名axis=1
和level=0
的最后groupby
以及汇总sum
或mean
...
df1 = df.groupby(axis=1, level=0).sum()
print (df1)
Body Pump Ciclo Indoor
0 2 3