大家好,我有一个数据帧:
df1
WM WH WP LC_REF
0 Tesla Doritos Spiders DT 17 1C
1 Merc Lays Contortion DT 17 1C
2 Lambo Finale NaN DT 17 1C
3 Reddy Red NaN DT 17 1C
4 Tomball Fools NaN DT 17 1C
还有一本字典
^{pr2}$我想知道最有效的方法来检查每一列中的每一项,然后将这些列分组,这样如果列值与值“Car”或“Food”匹配,那么期望的输出是:
df2 if key matches Car
LC_REF vals Category
0 DT 17 1C Merc,Tesla WM
1 DT 17 1C Red, Fools WH
df3 if key matches Food
LC_REF vals Category
0 DT 17 1C Reddy,Tomball WM
1 DT 17 1C Doritos, Lays WH
2 DT 17 1C Spiders, Contortion WP
目前为止
df = df.groupby('LC_REF',sort=False).agg(lambda x: ','.join(x.astype(str).str.upper()).replace(' ','')).stack().rename_axis(('LC_REF','a')).reset_index(name='vals')
是我对它们进行分组的代码,但我正在努力如何正确地将它们分开。任何对这个复杂问题的帮助都会很好。在
尝试以下操作:
一些指导步骤:
翻转的列包含一个Car项时也要遵循相同的过程。
example
字典:keys到值列表,value到keys。这样做有助于搜索项目。您将所有与Food
相关的项放在一个列表中,将与Car
相关的项放在另一个列表中。如果你想让一个pd.melt
起始数据帧(df1
)。这将使数据帧处于有利于后续操作的形状(从宽到长)。使用布尔索引获取其}项的行。
vals
列包含Food
或{对列}使用
LC_REF
和{group-by
操作,然后连接vals
列中的项。我希望这有帮助。在
相关问题 更多 >
编程相关推荐