gpt4 book ai didi

python - 如何复制 Pandas 数据帧以匹配其他数据帧长度?

转载 作者:太空宇宙 更新时间:2023-11-03 13:55:22 25 4
gpt4 key购买 nike

假设以下数据帧:

df1:

a    
10.
20.
30.
40.
50.
60.
70.
80.
90.
100.
110.
120.

df2:

b
1.
2.

df3:

b
1.
2.
3.

知道 len(df1.values) % len(df2.values) == 0,我想将 df1 的每个元素除以 的每个元素df2,在根据需要重复 df2 多次以适应 df11 的长度后,在这种情况下意味着

结果(df1,df2):

a    
10.
10.
30.
20.
50.
30.
70.
40.
90.
50.
110.
60.

结果(df1,df3):

a    
10.
10.
10.
40.
25.
20.
70.
40.
30.
100.
55.
40.

实现此目标的最简洁方法是什么,最好不要通过 numpy?

最佳答案

这是使用 np.resize 的一种方法,其中新数组将填充原始数组的副本,直到它适合指定的长度:

df1['a'] /= np.resize(df2.b.values, df1.shape[0])

a
0 10.0
1 10.0
2 30.0
3 20.0
4 50.0
5 30.0
6 70.0
7 40.0
8 90.0
9 50.0
10 110.0
11 60.0

或使用 pd.np.tile :

df1['a'] /= pd.np.tile(df2.b, df1.shape[0]//df2.shape[0])

关于python - 如何复制 Pandas 数据帧以匹配其他数据帧长度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56756118/

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