📜  将 pandas 数据框展开为单独的行 - Python (1)

📅  最后修改于: 2023-12-03 15:09:32.361000             🧑  作者: Mango

将 Pandas 数据框展开为单独的行 - Python

如果您正在处理数据集并需要将 Pandas 数据框中的数据展开为独立的行,那么您来到了正确的地方!在 Python 中,我们可以使用 pandas.DataFrame.explode 方法来展开 Pandas 数据框中的列表、序列或单元格。

方法

语法如下:

DataFrame.explode(column, ignore_index=False)
参数
  • column: str 或可迭代对象,用于指定要展开的列。
  • ignore_index: bool,默认为 False,如果为 True,则重置索引。
返回值

返回一个 Pandas 数据框,其中包含展开后的所有行。

简单示例

让我们看一个简单的示例:

import pandas as pd

df = pd.DataFrame({
    'Tag': ['fruit', 'fruit', 'veggie'],
    'Items': [['apple', 'orange'], ['grape'], ['carrot', 'celery']]
})

print(df)

输出:

      Tag           Items
0   fruit  [apple, orange]
1   fruit         [grape]
2  veggie   [carrot, celery]

现在我们希望将 df 表格中的每个元素(Item)展开为单独的行。我们可以使用 explode 方法来实现这个目标。

df_explode = df.explode('Items')
print(df_explode)

输出:

      Tag     Items
0   fruit     apple
0   fruit    orange
1   fruit     grape
2  veggie    carrot
2  veggie    celery

我们可以看到,列表 Items 中的每个元素都被展开为一个单独的行。

细节注意
  • 如果用于 explode 的列包含 None 或空列表,则输出表格将包括一行(对应于原始数据框中的一行)。
  • 如果您想展开多列,可以使用 df.explode([col1, col2]) 语法,将列名以列表形式传递给 explode 方法。
结论

pandas.DataFrame.explode 方法使我们能够轻松地展开 Pandas 数据框中的列表或单元格,然后将它们转换为独立的行。