根据条件在循环中创建多个df

2024-10-03 04:25:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要根据一个条件从熊猫中较大数据帧的切片创建多个数据帧。不同的数据帧必须根据大数据帧的某些行值命名

这是大数据帧:

 Id  Valore
ID554    53.0
ID554    43.0
ID522    42.0
ID522    32.0
ID566    26.0

因此,不同的数据帧必须命名为ID554、ID522、ID566等等。 我试过这个:

id=df['Id'].unique()
for a in id:
 a=df.loc[(df['ID']==a)]

但是它不起作用


Tags: 数据iniddffor切片条件命名
2条回答

您可以使用.groupby

dataframes = {}
for name, g in df.groupby("Id"):
    dataframes[name] = g

# print the data:
for k, v in dataframes.items():
    print("Name:", k)
    print("-" * 80)
    print(v)
    print()

印刷品:

Name: ID522
                                        
      Id  Valore
2  ID522    42.0
3  ID522    32.0

Name: ID554
                                        
      Id  Valore
0  ID554    53.0
1  ID554    43.0

Name: ID566
                                        
      Id  Valore
4  ID566    26.0

使用exec

df = pd.DataFrame({"Id":["ID554","ID554","ID522","ID522","ID566"],"Valore":[53,43,42,32,26]})

for i in df.Id.unique():
    exec(f"{i} = df[df.Id == i]")

下面的代码将生成不同的数据帧,并使用其ID的名称将其保存在不同的变量中

产出:

print(ID522)

          Id  Valore
    2  ID522      42
    3  ID522      32

print(ID554)

       Id  Valore
    0  ID554      53
    1  ID554      43

print(ID566)

       Id  Valore
    4  ID566      26

相关问题 更多 >