简体   繁体   English

如何将 pandas dataframe 中的多个列转换为包含这些列的字典的列?

[英]How can I convert multiple columns in a pandas dataframe into a column containing dictionaries of those columns?

I have a very large dataframe containing the following columns:我有一个非常大的 dataframe 包含以下列:

RegAddress.CareOf,RegAddress.POBox,RegAddress.AddressLine1,RegAddress.AddressLine2,RegAddress.PostTown,RegAddress.County,RegAddress.Country,RegAddress.PostCode

I am inserting this dataframe (loaded from a CSV) into a relational database, and so would like to convert these columns into a single column, RegAddress , containing a dictionary, which contains the keys CareOf, POBox, AddressLine1... and so on.我正在将此 dataframe(从 CSV 加载)插入关系数据库,因此想将这些列转换为单个列RegAddress ,其中包含一个字典,其中包含键CareOf, POBox, AddressLine1...等等. I cannot figure out how to do this in a vectorised fashion, ie go from:我无法弄清楚如何以矢量化方式执行此操作,即 go 来自:

RegAddress.CareOf,RegAddress.POBox
Me,2
You,3

to:到:

RegAddress
{"CareOf": "Me", "POBox": 2}
{"CareOf": "You", "POBox": 3}

efficiently.有效率的。

You can use the .apply() method to achieve this:您可以使用.apply()方法来实现此目的:

selected_cols = ['RegAddress.CareOf', 'RegAddress.POBox']

df2 = pd.DataFrame()
df2['RegAddress'] = df.apply(
    lambda row: {
        col.split('.')[1]: row[col] for col in row.index
        if col in selected_cols
    },
    axis=1
)

Result:结果:

                      RegAddress
0   {'CareOf': 'Me', 'POBox': 2}
1  {'CareOf': 'You', 'POBox': 3}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 将包含字典列表的列转换为pandas dataframe中的多个列 - Convert a column containing a list of dictionaries to multiple columns in pandas dataframe 如何将一列字典转换为熊猫中的单独列? - How to convert a column of dictionaries to separate columns in pandas? 如何将多列字典转换为数据框? - How to convert multiple columns of dictionaries to a dataframe? Pandas Dataframe:拆分包含字典列表的列 - Pandas Dataframe: Splitting Columns containing lists of dictionaries 将pandas DataFrame中的列转换为多列 - Convert a column in a pandas DataFrame into multiple columns Pandas Dataframe 将列表的列转换为多列 - Pandas Dataframe convert column of lists to multiple columns 如何将包含 json 的 pandas 列拆分为给定 dataframe 中的新列? - How can I split a pandas column containing a json into new columns in a given dataframe? 将一列中的词典列表转换为同一数据框中的多列 - Convert list of dictionaries in a column to multiple columns in same dataframe 如何在另一个数据帧 python pandas 中的多列上使用条件逻辑在数据帧中创建一列? - How can I create a column in a dataframe using conditional logic on multiple columns in another dataframe python pandas? Pandas dataframe,如何按多列分组并为特定列应用总和并添加新的计数列? - Pandas dataframe, how can I group by multiple columns and apply sum for specific column and add new count column?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM