唯一的,过滤Pandas Dataframe ,沿着在一个单一循环中更改 Dataframe 内的数据[重复]

yhuiod9q  于 2023-02-20  发布在  其他
关注(0)|答案(1)|浏览(125)
    • 此问题在此处已有答案**:

Split pandas dataframe based on groupby(4个答案)
20小时前关门了。
我有一个 Dataframe :
| 类型|子类型|计数|
| - ------|- ------|- ------|
| A类|AA|1个|
| A类|AA|第二章|
| 乙|学士|三个|
| 乙|学士|四个|
| 乙|AA|五个|
| A类|学士|六个|
所以我尝试做一个循环来寻找Type和Sub_Type的唯一组合,如果有唯一的组合,将组过滤到不同的 Dataframe 中。一旦创建了新的 Dataframe ,甚至count列中的值也会改变。count中的值在下面的预期输出中给出。
输出应为:DF1:
| 类型|子类型|计数|
| - ------|- ------|- ------|
| A类|AA|1个|
| A类|AA|第二章|
DF2:
| 类型|子类型|计数|
| - ------|- ------|- ------|
| 乙|学士|1个|
| 乙|学士|第二章|
DF3:
| 类型|子类型|计数|
| - ------|- ------|- ------|
| 乙|AA|1个|
DF4:
| 类型|子类型|计数|
| - ------|- ------|- ------|
| A类|学士|1个|
一旦 Dataframe 完成,循环应结束。
请为这个问题建议一个循环。

kulphzqa

kulphzqa1#

import pandas as pd

df = pd.DataFrame({'Type': ["A", "A", "B", "B", "B", "A"],
                    'Sub_Type': ["AA", "AA", "BA", "BA", "AA", "BA"],
                    'Count': [3, 9, 3, 4, 3, 1],
                    })

datdict = {}
i = 0
for frame, data in df.groupby(['Type', 'Sub_Type']):
    datdict[i] = data
    i+=1
Dataframe 0例如:
print(pd.DataFrame(datdict[0]))

  Type Sub_Type  Count
0    A       AA      3
1    A       AA      9
数据字典包含:
>>> datdict
{0:   Type Sub_Type  Count
0    A       AA      3
1    A       AA      9, 1:   Type Sub_Type  Count
5    A       BA      1, 2:   Type Sub_Type  Count
4    B       AA      3, 3:   Type Sub_Type  Count
2    B       BA      3
3    B       BA      4}

相关问题