,可以通过以下步骤实现:
import pandas as pd
import numpy as np
data = {'col1': [{'key1': 'value1', 'key2': 'value2'}, {'key3': 'value3', 'key4': 'value4'}],
'col2': [[1, 2, 3], [4, 5, 6]]}
df = pd.DataFrame(data)
def separate_dict_list(df, column):
df[column + '_dict'] = df[column].apply(lambda x: x if isinstance(x, dict) else np.nan)
df[column + '_list'] = df[column].apply(lambda x: x if isinstance(x, list) else np.nan)
df[column] = df[column].apply(lambda x: np.nan if isinstance(x, dict) or isinstance(x, list) else x)
separate_dict_list(df, 'col1')
separate_dict_list(df, 'col2')
print(df)
输出结果:
col1 col2 col1_dict col1_list col2_dict col2_list
0 {'key1': 'value1', 'key2': 'value2'} [1, 2, 3] NaN NaN
1 {'key3': 'value3', 'key4': 'value4'} [4, 5, 6] NaN NaN
通过以上步骤,我们成功将pandas dataframe列中的dict和list分离到了不同的dataframe列中。其中,原始列被替换为了对应的dict或list,而新添加的列则包含了原始列中的dict或list数据。这样可以更方便地对数据进行处理和分析。
腾讯云相关产品和产品介绍链接地址:
云+社区沙龙online第5期[架构演进]
DBTalk
DB TALK 技术分享会
Elastic Meetup
云+社区技术沙龙[第9期]
技术创作101训练营
云+社区技术沙龙[第20期]
领取专属 10元无门槛券
手把手带您无忧上云