熊猫:创建一个在两列之间交替的新列
问题描述:
我有一个名为timestamp,A和B的3列的熊猫数据框。我想创建一个新的数据框,其中包含Timestamp和一列C.C如下:熊猫:创建一个在两列之间交替的新列
C[1] = A[1]
C[2]= B[1]
C[3] = A[2]
C[4] = B[2]
时间戳记条目对于前一个数据帧的相同行将是相同的。 什么是实现上述操作最方便的方法?
答
df1 = df.set_index('timestamp').stack().rename_axis(('dates', 'cols')).reset_index(name='C')
print (df1)
dates cols C
0 2012-01-01 A 2
1 2012-01-01 B 8
2 2012-01-02 A 3
3 2012-01-02 B 9
4 2012-01-03 A 5
5 2012-01-03 B 1
或者melt
,但值的顺序是不同的:
df1 = df.melt(id_vars='timestamp', var_name='cols', value_name='C')
#pandas bellow 0.20.1
#df1 = pd.melt(df, id_vars='timestamp', var_name='cols', value_name='C')
print (df1)
timestamp cols C
0 2012-01-01 A 2
1 2012-01-02 A 3
2 2012-01-03 A 5
3 2012-01-01 B 8
4 2012-01-02 B 9
5 2012-01-03 B 1
https://pandas.pydata.org/pandas-docs/stable /generated/pandas.melt.html – ayhan
我看到我的解决方案不起作用,因为未经接受。什么是问题? – jezrael