python - 从存储在列中的列表中追加行
问题描述
我在一列中有带有列表的 DataFrame,并希望将每个列表成员附加为新行。这里有一个例子:
import pandas as pd
df = pd.DataFrame({'a': ['fruit','vegetable'], 'b': [['orange', 'banana'], ['apple']]})
df
a b
0 fruit [orange, banana]
1 vegetable [carrot]
结果应该是:
a b
0 fruit [orange]
1 vegetable [carrot]
2 fruit [banana]
我知道如何使用循环(itertuples 或 iterrows)来做到这一点,但我想知道是否有比这更 Pythonic 的方式:
for r in df[df['b'].str.len()>1].itertuples():
for item in r.b:
df = df.append({'a': r.a, 'b': [item]}, ignore_index=True)
df = df[df['b'].str.len()<2]
解决方案
推荐阅读
- amazon-web-services - 如何使用 json 文件将数据点添加到 TargetTracking Scaling 中的 aws cloudwatch 中的警报?
- python - 如何在 Python 参数中传递 Ruby 实例变量
- excel - 在菜单中选择一个选项不起作用(html DOM)
- javascript - 8位数字的正则表达式,之后是1个点,之后只有2位数字
- django - 无法在 SubjectRoomSchedule 或 SubjectRoomSchedule 上查找“Time_From”
- python - 如何跳过无法解码的字符?
- php - Codeigniter - 发送包含异常详细信息的电子邮件
- jupyter-notebook - 使用 python 的简单分析仪表板
- python - 插入 Postgres 时 python 代码慢
- javascript - 如何在没有某种样式的情况下将文本粘贴到tinymce