首页 > 解决方案 > 从存储在列中的列表中追加行

问题描述

我在一列中有带有列表的 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]

标签: pythonpandasdataframeappend

解决方案


推荐阅读