首页 > 解决方案 > Pandas 通过迭代现有的 df 行创建单独的 df

问题描述

我有一个熊猫df:

import pandas as pd

data = {'animal': ['Cow', 'Mouse', 'Horse', 'Dog', 'Cat'], 
        'age': [12, 1, 23, 4, 5], 
        'reports': [4, 24, 31, 2, 3],
        'id': [234, 745, 732, 245, 232]}
df = pd.DataFrame(data)
df

我如何遍历 pandas df 中的每一行并根据每一行创建一个单独的 df?例如,我可以遍历每一行,如下所示并打印animal列,但最终我试图弄清楚如何迭代每一行并为每一行创建一个单独df的行,df名称将是animal行值。

for index, row in df.iterrows(): 
    print(row['animal'])

希望这是有道理的..

标签: pythonpandasdataframe

解决方案


您可以使用字典:

animals = {}
for index, row in df.iterrows(): 
    animals[row['animal']] = pd.DataFrame([dict(row)])

要打印Dog数据框,我可以执行以下操作:

>> print(animals['Dog'])
  animal  age  reports   id
0    Dog    4        2  245

推荐阅读