我有两个数据框,我正在尝试将它们连接起来。我确保它们具有相同数量的列,并且数据类型匹配。
然而,当调用
我做错了什么?
然而,当调用
pd.concat([df1, df2], ignore_index=True)
时,我得到了一个带有24列和大量NaN
值的数据框。我期望pd.concat()
只是将第二个数据框“放在”第一个数据框下面(所以默认值;axis=0
)。我做错了什么?
>>> df1.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 798810 entries, 0 to 798809
Data columns (total 12 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 0 798810 non-null Int64
1 1 798810 non-null float64
2 2 798810 non-null float64
3 3 798810 non-null float64
4 4 798810 non-null float64
5 5 798810 non-null float64
6 6 798810 non-null Int64
7 7 798810 non-null float64
8 8 798810 non-null Int64
9 9 798810 non-null float64
10 10 798810 non-null float64
11 11 798810 non-null float64
dtypes: Int64(3), float64(9)
memory usage: 75.4 MB
>>> df2.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 500 entries, 0 to 499
Data columns (total 12 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 0 500 non-null Int64
1 1 500 non-null float64
2 2 500 non-null float64
3 3 500 non-null float64
4 4 500 non-null float64
5 5 500 non-null float64
6 6 500 non-null Int64
7 7 500 non-null float64
8 8 500 non-null Int64
9 9 500 non-null float64
10 10 500 non-null float64
11 11 500 non-null float64
dtypes: Int64(3), float64(9)
memory usage: 48.5 KB
>>> pd.concat([df1, df2], ignore_index=True).shape
(799310, 24)
df1.columns
返回Index(['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11'], dtype='object')
而df2.columns
返回RangeIndex(start=0, stop=12, step=1)
。将对象转换为整数可以解决这个问题。令人困惑的是,这在.info()
中没有显示出来。 - gosuto