gpt4 book ai didi

python - 拆分 DataFrame 并立即将代码应用于所有 DataFrame?

转载 作者:行者123 更新时间:2023-12-01 02:53:52 27 4
gpt4 key购买 nike

我想按列值将我的 DataFrame 从十二行分成三个 DataFrame,然后将一组代码同时应用于所有 DataFrame。

    A     B      C      
1 A 0.25 0
2 A 0.50 0
3 A 0.75 0
4 B 1.00 1
5 B 1.25 1
6 B 1.75 1
7 C 0.50 1
8 C -0.25 0
9 C 1.25 1
10 D 0.75 1
11 D -0.75 0
12 D -1.00 -1

生成的数据帧应该是:

    A     B      C      
1 A 0.25 0
2 A 0.50 0
3 A 0.75 0

4 B 1.00 1
5 B 1.25 1
6 B 1.75 1

7 C 0.50 1
8 C -0.25 0
9 C 1.25 1

10 D 0.75 1
11 D -0.75 0
12 D -1.00 -1

到目前为止,我已经尝试过 df.groupby(['A'])df.set_index(['A']) 但这些函数似乎并不让我能够无错误地应用一组代码。

最佳答案

最简单的是通过转换为tuple然后转换为dictgroupby来创建所有DataFramesdict 对象:

d = dict(tuple(df.groupby('A')))
print (d)
{'B': A B C
4 B 1.00 1
5 B 1.25 1
6 B 1.75 1, 'A': A B C
1 A 0.25 0
2 A 0.50 0
3 A 0.75 0, 'D': A B C
10 D 0.75 1
11 D -0.75 0
12 D -1.00 -1, 'C': A B C
7 C 0.50 1
8 C -0.25 0
9 C 1.25 1}

print (d['A'])
A B C
1 A 0.25 0
2 A 0.50 0
3 A 0.75 0

对于应用功能,可以使用:

for i, x in d.items():
d[i] = x.mean(axis=1)

print (d['A'])
1 0.125
2 0.250
3 0.375
dtype: float64

但更好的方法是将 groupby 与自定义函数一起使用 - 请参阅 docs :

def f(x):
print (x)
return x.mean(axis=1)

df1 = df.groupby('A').apply(f)
print (df1)
A 1 0.125
2 0.250
3 0.375
B 4 1.000
5 1.125
6 1.375
C 7 0.750
8 -0.125
9 1.125
D 10 0.875
11 -0.375
12 -1.000
dtype: float64

关于python - 拆分 DataFrame 并立即将代码应用于所有 DataFrame?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44437190/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com