为列中的所有值重塑数据框

问题描述 投票:0回答:1

我有一个这样的数据框:

number   type     X     Y           Z              
  1       red     101   NaN         101,NaN          
  2       blue    101   40,50       101,40,50
  3       green   401   70,NaN      101,70,NaN

有什么方法可以基于列type标记每个Z元素? Z只是XY的组合版本。

所以类似:

 Number    Type         Z     Flag
  1        red        101     X
  1        red        NaN     Y
  2        blue       101     X
  2        blue       40      Y
  2        blue       50      Y
  3        green      101     X
  3        green      70      Y
  3        green      NaN     Y

我正在考虑melt函数,但不确定如何。

reshaped_data = pd.melt(df, id_vars =['number', 'type',
                           'Z'], value_vars =['X', 'Y'])
python pandas dataframe melt
1个回答
0
投票

Series.str.splitSeries.str.split在0.24+以下的熊猫解决方案:

DataFrame.stack
© www.soinside.com 2019 - 2024. All rights reserved.