【发布时间】:2020-04-18 13:04:52
【问题描述】:
我有数据框:
subject A_target_word_gd A_target_word_fd B_target_word_gd B_target_word_fd subject_type
1 1 2 3 4 mild
2 11 12 13 14 moderate
我想把它融合成一个看起来像的数据框:
cond subject subject_type value_type value
A 1 mild gd 1
A 1 mild fg 2
B 1 mild gd 3
B 1 mild fg 4
A 2 moderate gd 11
A 2 moderate fg 12
B 2 moderate gd 13
B 2 moderate fg 14
...
...
意思是,根据分隔符来融化。
最好的方法是什么?
【问题讨论】:
-
df[['cond','level','word','value_type']] = df['cond'].str.split('_',expand=True)?那么您可以删除word列 -
我在这里没有看到任何使用 melt 的方法。您可以通过不同的方式生成新列。
df['cond_new'] = df['cond'].apply(lambda x: x.split()[0] if x is not None else x)并执行相同操作以获取另一列,或者可以关注 anky_91 -
@DataPsycho 很抱歉我很困惑,没有写好的原始df,请看我的编辑
标签: python pandas data-science melt