gpt4 book ai didi

python - 识别多个数据框中的重叠行

转载 作者:行者123 更新时间:2023-11-30 22:49:43 24 4
gpt4 key购买 nike

我有两个数据框,例如

df1

Time      accler
19.13.33 24
19.13.34 24
19.13.35 25
19.13.36 27
19.13.37 25
19.13.38 27
19.13.39 25
19.13.40 24

df2

 Time      accler
19.13.29 24
19.13.30 24
19.13.31 25
19.13.32 27
19.13.33 25
19.13.34 27
19.13.35 25
19.13.36 24

这两个数据帧在 2033 年 13 月 19 日到 36 年 13 月 19 日的列时间上重叠。因此,当存在重叠时,我只需要由重叠行组成的数据框

预期输出

df1

 Time      accler
19.13.33 24
19.13.34 24
19.13.35 25
19.13.36 27

df2

Time      accler
19.13.33 25
19.13.34 27
19.13.35 25
19.13.36 24

或者我也可以有一个数据帧的concat,这将有助于进一步处理。

我尝试了合并,但没有成功,因为数据帧是根据 csv 文件的数量动态创建的。我尝试首先连接所有数据帧并尝试迭代行,但没有找到方法。

最佳答案

您可以使用merge ,默认参数how='inner'可以省略:

df = pd.merge(df1, df2, on='Time')
print (df)
Time accler_x accler_y
0 19.13.33 24 25
1 19.13.34 24 27
2 19.13.35 25 25
3 19.13.36 27 24

df1 = df[['Time','accler_x']].rename(columns={'accler_x':'accler'})
print (df1)
Time accler
0 19.13.33 24
1 19.13.34 24
2 19.13.35 25
3 19.13.36 27

df2 = df[['Time','accler_y']].rename(columns={'accler_y':'accler'})
print (df2)
Time accler
0 19.13.33 25
1 19.13.34 27
2 19.13.35 25
3 19.13.36 24

如果您需要合并多个DataFrames,请使用reduce :

#Python 3
import functools

df = functools.reduce(lambda x,y: x.merge(y,on=['Time']), [df1, df2])

#python 2
df = reduce(lambda x,y: x.merge(y,on=['Time']), [df1, df2])

关于python - 识别多个数据框中的重叠行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39643601/

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