【发布时间】:2019-04-20 09:36:22
【问题描述】:
我有一个这样的数据框:
输入:
df = pd.DataFrame({'a': range(3), 'b': np.arange(3)-1})
期望的输出:
df_rearranged = pd.DataFrame({'data': [0,1,2,-1,0,1], 'origin': ['a', 'a', 'a', 'b', 'b', 'b']})
我找到了一种(hacky)方法:
尝试:
subset_1 = df[['a']]
subset_1['origin'] = 'a'
subset_1.rename(columns={'a':'data'}, inplace=True)
subset_2 = df[['b']]
subset_2['origin'] = 'b'
subset_2.rename(columns={'b':'data'}, inplace=True)
df_rearranged = subset_1.append(subset_2)
这行得通,但是当我想合并大量列时,它很快就变得不切实际了。另外,我觉得pandas中应该有一个默认的功能,但是我缺少找到它的关键字。非常感谢您的帮助!
【问题讨论】:
-
你想融化,
df.melt()