我有一个数据框,我通过 EQ_NR
列与另一个数据框合并。
这是第一个数据框的结构:(行:320816)
这是第二个:(行数:135818)
合并后,我有一个数据帧,其中“TA”从第二个数据帧添加到第一个数据帧,值为“EQ_NR”。
问题是我在合并前有 320816 行,在合并这两个数据帧后有 320871 行。比基本数据多 55 行会发生什么情况?
我需要数据来进行一些计算,而另外 55 行扭曲了计算结果...
最佳答案
加入列 NR
时存在重复问题。
示例中有重复值 100363
和 100594
。
示例:
import pandas as pd
df1 = pd.DataFrame({'NR':[100363,100363,100363, 100365],
'B':[4,5,6,7],
'C':[7,8,9,7]})
print (df1)
B C NR
0 4 7 100363
1 5 8 100363
2 6 9 100363
3 7 7 100365
df2 = pd.DataFrame({'NR':[1001380363,1001380363,1001380363,1001380363],
'B':[4,5,6,8],
'C':[7,8,9,3]})
print (df2)
B C EQ_NR
0 4 7 1001380363
1 5 8 1001380363
2 6 9 1001380363
3 8 3 1001380363
print (pd.merge(df1, df2, on=['NR']))
B_x C_x NR B_y C_y
0 4 7 100363 4 7
1 4 7 100363 5 8
2 4 7 100363 6 9
3 4 7 100363 8 3
4 5 8 100363 4 7
5 5 8 100363 5 8
6 5 8 100363 6 9
7 5 8 100363 8 3
8 6 9 100363 4 7
9 6 9 100363 5 8
10 6 9 100363 6 9
11 6 9 100363 8 3
编辑1:
如果数据帧 df2
在 NR
中没有重复数据,使用:
print (df1)
ART DAT LEIST_DAT KD BW NR MATERIAL \
0 AF 2015-12-10 2015-12-31 P B 100363 S
1 AF 2015-12-10 2015-12-31 P B 100363 S
2 AF 2015-12-10 2015-12-31 P B 100363 S
3 AF 2015-12-10 2015-12-31 P B 100363 S
4 AF 2015-12-10 2015-12-31 P B 100363 S
5 AF 2015-12-10 2015-12-31 P B 100363 S
6 AF 2015-12-10 2015-12-31 P B 100363 S
7 AF 2015-12-10 2015-12-31 P E 100594 S
8 AF 2015-12-10 2015-12-31 P B 100594 S
KW_WERT NETTO_EURO TA
0 0.150 18.90 H
1 0.145 18.27 H
2 0.145 18.27 NaN
3 0.150 18.90 H
4 0.150 18.90 NaN
5 0.145 18.27 H
6 0.150 18.90 H
7 3.011 252.92 AN
8 3.412 429.91 AN
print (df2)
NR TA
0 100363 Sonstiges
1 100704 Sonstiges
2 100823 Sonstiges
3 100985 Sonstiges
4 100774 D
5 100790 D
6 100097 NaN
print (pd.merge(df1, df2, on=['NR'], how='left', suffixes=('','_new')))
ART DAT LEIST_DAT KD MW_BW NR MATERIAL \
0 F 2015-12-10 2015-12-31 P B 100363 S
1 F 2015-12-10 2015-12-31 P B 100363 S
2 F 2015-12-10 2015-12-31 P B 100363 S
3 F 2015-12-10 2015-12-31 P B 100363 S
4 F 2015-12-10 2015-12-31 P B 100363 S
5 F 2015-12-10 2015-12-31 P B 100363 S
6 F 2015-12-10 2015-12-31 P B 100363 S
7 F 2015-12-10 2015-12-31 P E 100594 S
8 F 2015-12-10 2015-12-31 P B 100594 S
KW_WERT NETTO_EURO TA TA_new
0 0.150 18.90 H Sonstiges
1 0.145 18.27 H Sonstiges
2 0.145 18.27 NaN Sonstiges
3 0.150 18.90 H Sonstiges
4 0.150 18.90 NaN Sonstiges
5 0.145 18.27 H Sonstiges
6 0.150 18.90 H Sonstiges
7 3.011 252.92 AN NaN
8 3.412 429.91 AN NaN
关于python - 将两个数据框与 Pandas 合并后的行数不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38852207/