gpt4 book ai didi

python - 删除 Pandas Dataframe 中的列表

转载 作者:行者123 更新时间:2023-12-01 01:17:41 25 4
gpt4 key购买 nike

我有以下数据框:

Index   Recipe_ID   order   content
0 1285 1 Heat oil in a large frypan with lid over mediu...
1 1285 2 Meanwhile, add cauliflower to a pot of boiling...
2 1285 3 Remove lid from chicken and let simmer uncover...
3 1289 1 To make the dressing, whisk oil, vinegar and m...
4 1289 2 Cook potatoes in a large saucepan of boiling w..

任务:我需要获取一个单元格中的内容:

df = df.groupby('recipe_variation_part_id', as_index=False).agg(lambda x: x.tolist())

这将返回以下内容:

Index   Recipe_ID   order         content
0 1285 [1, 2, 3] [Heat oil in a large frypan with lid over medi...
1 1289 [1, 2, 3] [To make the dressing, whisk oil, vinegar and ...
2 1297 [1, 2, 4, 3] [Place egg in saucepan of cold water and bring...
3 1301 [1, 2] [Preheat a non-stick frying pan and pan fry th...
4 1309 [2, 3, 4, 1] [Meanwhile, cook noodles according to package ...

如果您查看第一个食谱条目,您会得到以下内容:

['Heat oil in a large frypan with lid over medium-high heat. Cook onions, garlic and rosemary for a couple of minutes until soft. Add chicken and brown on both sides for a few minutes, then add in tomatoes and olives. Season with salt and pepper and allow to simmer with lid on for 20-25 minutes. ',
'Meanwhile, add cauliflower to a pot of boiling water and cook for 10 minutes or until soft. Drain and then mash and gently fold in olive oil, parmesan, salt and pepper. ',
'Remove lid from chicken and let simmer uncovered for five minutes more. Sprinkle with parsley then serve with cauliflower mash. ']

这就是我想要的,但我需要删除方括号

dtype=列表

我已经尝试过:

df.applymap(lambda x: x[0] if isinstance(x, list) else x)

仅返回第一个条目,而不返回每个步骤

我已经尝试过:

df['content'].str.replace(']', '')

仅返回 NAN

我已经尝试过:

df['content'].str.replace(r'(\[\[(?:[^\]|]*\|)?([^\]|]*)\]\])', '')

仅返回 NAN

我已经尝试过:

df['content'].str.get(0)

仅返回第一个条目

任何帮助将不胜感激。

如果您需要更多信息,请告诉我。

最佳答案

我创建了一个小示例,可以为您解决这个问题:

import pandas as pd
df = pd.DataFrame({'order': [1, 1, 2], 'content': ['hello', 'world', 'sof']})
df
Out[4]:
order content
0 1 hello
1 1 world
2 2 sof
df.groupby(by=['order']).agg(lambda x: ' '.join(x))
Out[5]:
content
order
1 hello world
2 sof

因此,就像您在问题的第 5 行中所做的那样,您使用 ' '.join(x) 而不是 tolist() ,这会将所有内容都视为 1 大字符串而不是字符串列表,因此没有 []

关于python - 删除 Pandas Dataframe 中的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54166444/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com