【发布时间】:2021-04-08 14:38:14
【问题描述】:
我有一个 csv 10k 行,26 列,例如:
pd.DataFrame({'col1':['a','a','b','b','a','a','b','b'],
'col2':[12,2,12,1,13,2.2,14,2.1],
'col3':[15,1.5,16,1.7,17,1.1,16.5,1],
'col4':[np.nan,np.nan,17,2,18,2,18,2],})
每行有不同数量的 NaN,有些行包含所有 26 列的数据,其他行没有。
我想把它改成这样:
pd.DataFrame({'a1':[12,15,np.nan,13,17,18],'a2':[2,1.5,np.nan,2.2,1.1,2],
'b1':[12,16,17,14,16.5,18],'b2':[1,1.7,2,2.1,1,2]})
我想a或b的奇数实例为a1/b1,每个偶数实例为a2/b2,然后转换
我认为支点会起作用,但不能让它起作用
ls=['a1','a2','b1','b2']
df['n']=[ls[i%4] for i in range(df.shape[0])]
df.iloc[:,1:5].pivot(columns='n')
有什么建议吗?
【问题讨论】: