我正在阅读2个dfs,使用:
extra = pd.read_csv('table1.txt', sep = '\s+')
data = pd.read_csv('table2.dat', sep = '\s+')
extra.info()
的输出是:
class 'pandas.core.frame.DataFrame'>
Int64Index: 11528 entries, 0 to 11527
Data columns:
a 11528 non-null values
key 11528 non-null values
c 11528 non-null values
d 11528 non-null values
e 11528 non-null values
f 11528 non-null values
g 11528 non-null values
h 11528 non-null values
i 11528 non-null values
j 11528 non-null values
k 11528 non-null values
dtypes: float64(11)None
data.info()
的输出是:
class 'pandas.core.frame.DataFrame'>
Int64Index: 11528 entries, 0 to 11527
Data columns:
1 11528 non-null values
2 11528 non-null values
3 11528 non-null values
key 11528 non-null values
5 11528 non-null values
...
79 11528 non-null values
80 11528 non-null values
81 11528 non-null values
dtypes: float64(80), int64(1)None
所以这两个df都有11528 rows
,它们有一个公共列:key
我使用以下方法合并了这两个dfs:
result = pd.merge(data, extra, on='key', sort = False)
result.info()
的输出是:
class 'pandas.core.frame.DataFrame'>
Int64Index: 11926 entries, 0 to 11925
Data columns:
1 11926 non-null values
2 11926 non-null values
3 11926 non-null values
key 11926 non-null values
5 11926 non-null values
6 11926 non-null values
...
80 11926 non-null values
81 11926 non-null values
a 11926 non-null values
b 11926 non-null values
...
j 11926 non-null values
k 11926 non-null values
dtypes: float64(90), int64(1)None
显然有点不对劲,因为新合并的df,result
有11926 rows
。你知道吗
有人能解释一下发生了什么事,用什么方法写下来吗?你知道吗
谢谢!你知道吗
df1 = 1 key 3 4
1 8 90 5 11
2 7 60 2 30
3 3 70 3 26
4 7 60 2 10
df2 = 5 6 key 7
1 3 2 90 17
2 9 3 60 42
3 6 4 70 17
4 1 5 60 23
我想要的输出是:
1 key 3 4 5 6 7
1 8 90 5 11 3 2 17
2 7 60 2 30 9 3 42
3 3 70 3 26 6 4 17
4 7 60 2 10 1 5 23
所发生的是在一个或两个数据帧中有重复的值
key
。因此,如果data
在其中有key1
5次,而extra
在其中有key1
2次,那么在合并键列上的两个数据帧时,key1
将有10个条目。你知道吗解决办法是:
相关问题 更多 >
编程相关推荐