我有一个dataframe
:
col1 col2 col3
0 1 a W
1 1 b X
2 2 c Y
3 2 d Z
我需要将它转换成这样的东西,根据第1列的值进行组合:
col1 col2 col3 dict_col
0 1 a W [{'col2': 'a', 'col3': 'W'}, {'col2': 'b', 'col3': 'X'}]
0 2 c Y [{'col2': 'c', 'col3': 'Y'}, {'col2': 'd', 'col3': 'Z'}]
这是我尝试做的:
import pandas as pd
data = {
'col1': [1, 1, 2, 2],
'col2': ['a', 'b', 'c', 'd'],
'col3': ['W', 'X', 'Y', 'Z']}
df = pd.DataFrame(data)
print(df)
cols_to_use = ['col2','col3']
df['dict_col'] = df[cols_to_use].apply(
lambda x: {'col2': x['col2'], 'col3': x['col3']},
axis=1)
print(df)
2条答案
按热度按时间4ioopgfo1#
您可以用途:
您还可以选择:
输出:
tez616oj2#
您可以使用groupby,然后应用您的函数:
这会给予你