使用python 3.8,pandas 1.1.4
我有一个看起来像这样的数据框
id combination
1 'A23B14C02R01D05E03F07G07H01I00J02K11L30'
2 'A11B14C02R01D05E03F07G07H01I00J02K11L30'
3 'A30B14C02R01D05E03F07G07H01I00J02K11L30'
...
我想要做的是将组合列分成仅包含一个字母的多个列。
所需的输出应如下所示:
id A B C R D E F G H I J K L
1 23 14 02 01 05 03 07 07 01 00 02 11 30
2 11 14 02 01 05 03 07 07 01 00 02 11 30
3 30 14 02 01 05 03 07 07 01 00 02 11 30
...
提前致谢!
最佳答案
让我们尝试使用 findall
然后使用 explode
和 crosstab
进行数据透视
s = df.combination.str.findall('([a-zA-Z]+)(\d+)').explode()
df = df.join(pd.crosstab(index=s.index,columns=s.str[0],values=s.str[1],aggfunc='first'))
df
id combination A B C ... I J K L R
0 1 A23B14C02R01D05E03F07G07H01I00J02K11L30 23 14 02 ... 00 02 11 30 01
1 2 A11B14C02R01D05E03F07G07H01I00J02K11L30 11 14 02 ... 00 02 11 30 01
2 3 A30B14C02R01D05E03F07G07H01I00J02K11L30 30 14 02 ... 00 02 11 30 01
[3 rows x 15 columns]
关于python - 将字母组合分成具有单个字母值的列 python pandas,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65501380/