gpt4 book ai didi

python - 合并 2 个 pandas 数据框时的重复

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

我试图理解为什么合并函数会重复值。

>>> c2.head()
Out[42]:
Bin Date/Time val
A 10/31/2017 15:53:57 0.77
A 10/31/2017 15:53:57 0.75
A 10/31/2017 15:53:57 0.79
A 10/31/2017 15:53:57 0.67
A 10/31/2017 15:53:57 0.72

>>> c1.head()
Out[44]:
Bin Date/Time code
A 10/31/2017 15:53:57 BYM
A 10/31/2017 15:53:57 CFS
A 10/31/2017 15:53:57 DFZ
A 10/31/2017 15:53:57 HKN
A 10/31/2017 15:53:57 RBF

我需要在 Bin 和 Datetime 上合并这两个。

>>> c= c1.merge(c2, on =['Bin','Date/Time'], how= 'left')

>>> c.head()
Out[50]:
Bin Date/Time Code Val
A 10/31/2017 15:53:57 BYM 0.77
A 10/31/2017 15:53:57 BYM 0.77
A 10/31/2017 15:53:57 BYM 0.77
A 10/31/2017 15:53:57 BYM 0.77
A 10/31/2017 15:53:57 BYM 0.77

因此 c 对于同一 bin/日期时间有多个条目。我认为也许日期时间值看起来相同但不同。但事实并非如此。

>>> c1['Date/Time'].iloc[0]
Out[46]: u'10/31/2017 15:53:57'
>>> c2['Date/Time'].iloc[0]
Out[47]: u'10/31/2017 15:53:57'
>>> c1['Date/Time'].iloc[0]==c2['Date/Time'].iloc[0]
Out[48]: True

此外,即使日期时间不同,每个 bin/日期时间也应该只有 2 行。知道这里会发生什么吗?

我的预期输出是:

  Bin       Date/Time      Code  Val
A 10/31/2017 15:53:57 BYM 0.77
A 10/31/2017 15:53:57 CFS 0.75
A 10/31/2017 15:53:57 DFZ 0.79
A 10/31/2017 15:53:57 HKN 0.67
A 10/31/2017 15:53:57 RBF 0.72

最佳答案

由于c2中唯一的val而发生重复值。

简化示例:

>>> c1.head(1)
Bin Date/Time code
0 A 2017-10-31 15:53:57 BYM

将这 1 行与 c2 合并:

>>> c1.head(1).merge(c2, on=['Bin','Date/Time'], how='left')
Bin Date/Time code val
0 A 2017-10-31 15:53:57 BYM 0.77
1 A 2017-10-31 15:53:57 BYM 0.75
2 A 2017-10-31 15:53:57 BYM 0.79
3 A 2017-10-31 15:53:57 BYM 0.67
4 A 2017-10-31 15:53:57 BYM 0.72

您正在合并两个键['Bin','Date/Time'],并且对于c1中的每个code,它会带来每个唯一的val 来自 c2。

关于python - 合并 2 个 pandas 数据框时的重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48675661/

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