我有以下数据帧:
df1 = pd.DataFrame({'Parent': ['Stay home', "Stay home","Stay home", 'Go swimming', "Go swimming","Go swimming"],
'Child': ['Severe weather', "Severe weather", "Severe weather", 'Not Severe weather', "Not Severe weather", "Not Severe weather"],
'Child1': ["Extreme rainy", "Extreme windy", "Severe snow", "Sunny", "some windy", "No snow"]
})
我想通过child
列将Child1
列强制转换为列表组
所以我正在尝试以下代码:
def cast_to_list(df, col):
return df.groupby('Child')[col].apply(list).tolist()
list5=cast_to_list(df1, 'Child1')
list5
结果:
[['Sunny', 'some windy', 'No snow'],
['Extreme rainy', 'Extreme windy', 'Severe snow']]
预期结果保持Child1
列值的顺序:
因此,预期结果如下:
[['Extreme rainy', 'Extreme windy', 'Severe snow'],
['Sunny', 'some windy', 'No snow']]
有什么想法吗?
在groupby
:中使用sort=False
def cast_to_list(df, col):
return df.groupby('Child', sort=False)[col].apply(list).tolist()
list5 = cast_to_list(df1, 'Child1')
list5
输出:
[['Extreme rainy', 'Extreme windy', 'Severe snow'],
['Sunny', 'some windy', 'No snow']]