我有表格
| 仓|A_颜色|B_颜色|A_尺寸|B_Size。|
| --------------|--------------|--------------|--------------|--------------|
| A|“红色”||五十||
| B||“蓝色”||六十|
我希望有一个共同的颜色和大小列,而不是像这样的每个类别的一组列
| 仓|颜色|尺寸|
| --------------|--------------|--------------|
| A|“红色”|五十|
| B|“蓝色”|六十|
我尝试了下面的方法,但是得到了['Color','Size']列的NaN值
bins = ['A', 'B', 'C', 'D', 'E']
for b in bins:
df.loc[df['Bins'] == b, ['Color', 'Size']] = \
df.loc[df['Bins'] == b, [f'{b}_Color', f'{b}_Size']]
这只是一个示例,真实的数据包含大约10万行和300多列。
2条答案
按热度按时间nbysray51#
你可以使用
pd.wide_to_long
。你只需要重命名你的列来匹配格式(A_Color -〉Color_A)详细信息:
gopyfrb32#
一个想法是通过使用
_
拆分列来获得第一个非缺失值:使用
lookup
的解决方案:您的解决方案应该通过转换为numpy数组来更改: