在Python中使用[key:value]组合将多列合并到一个列列表中

Sweetnlow

让我通过指出组合列不是字典来开头这个问题。生成的数据框在“组合”列中带有方括号-因此,它看起来像数据框内的列表,其格式为[key1:value1,key2:value2等]。

我正在尝试从中转换数据框:

import pandas as pd
test = pd.DataFrame({'apples':['red','green','yellow'], 'quantity':
[1,2,3],'tasteFactor':['yum','yum','yuck']})

   apples  quantity tasteFactor
0     red         1         yum
1   green         2         yum
2  yellow         3        yuck

对于这种格式,它将键和每行中的值组合到一个新列中:

   apples  quantity tasteFactor  combined
0     red         1         yum  ['apples':'red','quantity':'1','tastefactor':'yum']
1   green         2         yum  ['apples':'green','quantity':'2','tastefactor':'yum']
2  yellow         3        yuck  ['apples':'yellow','quantity':'3','tastefactor':'yuck']

试图将数据帧变成每行一个字典,但无法将其转换为列表。

test['combined'] = test.to_dict(orient='records')

结果新列不必是实际的列表类型。可能是字符串。

以前曾在此处提出此问题,但想在此问题的标题中澄清该问题。如何使用Python在DataFrame中的字典中创建列表

找到了以下密切相关的问题,并尝试对它们进行衍生,这使我半途而废,但似乎无法获得正确的格式。

时钟从机

您可以使用pandas数据框的apply方法进行操作

import pandas as pd
df = pd.DataFrame({'apples':['red','green','yellow'], 'quantity':
[1,2,3],'tasteFactor':['yum','yum','yuck']})

col_names = df.columns

def func(row):
    global col_names
    list_ = [str(b)+':'+str(a) for a,b in zip(row,col_names.values.tolist())]
    return list_

x = list(map(func, df.values.tolist()))
df.loc[:,'combined'] = pd.Series(x)
# df
#    apples  quantity tasteFactor                                       combined
# 0     red         1         yum      [apples:red, quantity:1, tasteFactor:yum]
# 1   green         2         yum    [apples:green, quantity:2, tasteFactor:yum]
# 2  yellow         3        yuck  [apples:yellow, quantity:3, tasteFactor:yuck]

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用 python 将多列中的值合并到每行中的一个列表中

Python Pandas将多列合并到一个字典列中

如何在熊猫中将多列合并到一个变量(列表)中

Java-将多个列表数据合并到一个单独的列列表中

将熊猫数据框中的两列合并到一个列表中

将多个值合并到一个新列中的一行 Pandas Python

如何在 C# 中使用 csvHelper 将两个单独列中的日期和时间合并到一个新的日期时间列中

想要按列将数组合并到另一个数组

将多列合并为一个列表列

如何将 Pandas DataFrame 中的数据与多索引合并到一个列表中

如何使用Pandas在Python中将不同的列合并到一个表中

将两个DataTable列中的值合并到一个新列中

将一个SQL列合并到另一列中,并删除重复项

如何从多个表中获取一列以合并到一个列表中?

如何使用Python将三个词典列表合并到一个嵌套词典中

从多列中选择最新的并合并到一个字段中

如何将包含字典的Python列表合并到一个最终列表中

Python将多列合并为一个

使用setDT将一个数据帧中的许多列合并到另一数据帧中

将两列与字符串合并到一个新列中

将两个列合并到一个DataFrame中,并使用PySpark计算出现次数

c# - 如何将具有对象的多个列表合并到一个列表中,并在c#中使用列表中元素之一的总和

使用excel office脚本将多个表中的特定列合并到一个表中

如何将两个选定的列合并到一个表中?

尝试用一个 ID 将多行合并到一列中

将多个表中的数据合并到一个列中

将多个文本文件中的特定列合并到一个文件中

将多个CSV文件中的列数据合并到一个CSV文件中

使用Linq将嵌套对象合并到一个列表中