【发布时间】:2015-12-28 08:41:51
【问题描述】:
我正在尝试展平包含列表列表的 pandas.DataFrame 列的内容,但是我找不到获得正确输出的正确方法。
而不是在 StackOverflow 中询问同一主题的 different question,这里的重点是 pandas.DataFrame 的每一行内的讨人喜欢的过程。
这是一个玩具示例:
df = pd.DataFrame({ 'recipe': [['olive oil',
'low sodium chicken broth',
'cilantro leaves',
'chile powder',
'fresh thyme'],
['coconut milk', 'frozen banana', 'pure acai puree', 'almond butter'],
['egg',
'whole milk',
'extra-virgin olive oil',
'garlic cloves',
'corn kernels',
'chicken breasts']],
'category': ['A', 'B', 'B']
})
df_grouped = df.groupby('category')['recipe'].apply(lambda x: x.tolist())
df_grouped = df_grouped.reset_index()
df_grouped['recipe'][1]
这会产生以下输出:
[['coconut milk', 'frozen banana', 'pure acai puree', 'almond butter'], ['egg', 'whole milk', 'extra-virgin olive oil', 'garlic cloves', 'corn kernels', 'chicken breasts']]
我的目标是逐行合并每个单词或句子列表。 我尝试使用以下代码,但它拆分了每个字母。
join = lambda list_of_lists: (val for sublist in list_of_lists for val in sublist)
df_grouped['merged'] = df_grouped['recipe'].apply(lambda x: list(join(x)))
df_grouped['merged']
这个产品:
0 [o, l, i, v, e, , o, i, l, l, o, w, , s, o, ...
1 [c, o, c, o, n, u, t, , m, i, l, k, f, r, o, ...
我想要每一行的以下输出,一个包含所有单词的数组
['coconut milk', 'frozen banana', 'pure acai puree', 'almond butter', 'egg', 'whole milk', 'extra-virgin olive oil', 'garlic cloves', 'corn kernels', 'chicken breasts']
【问题讨论】:
-
这不是重复的,这里的问题是关于熊猫数据框,可能的重复是关于一个列表的列表。
标签: python python-3.x pandas flatten