[英]How to join these two pandas data frames?
我无法将DataFrame1与DataFrame2结合使用,我怀疑这是由于其中一个具有int64索引,而另一个具有字符串索引。 如何将字符串索引也转换为int64索引(如果确实存在问题)? 如果没有,如何合并这两个数据帧?
DataFrame1
<class 'pandas.core.frame.DataFrame'>
Int64Index: 9943 entries, 10029934 to 9962359
Data columns:
face_area 9943 non-null values
image_area 9943 non-null values
ratio 9943 non-null values
dtypes: int64(3)
DataFrame2
<class 'pandas.core.frame.DataFrame'>
Index: 9412 entries, 10029934 to 9962359
Data columns:
1 9412 non-null values
2 9412 non-null values
name 9412 non-null values
class 9412 non-null values
dtypes: float64(2), int64(1), object(1)
DataFrame2['id'] = DataFrame2.index.map(int)
DataFrame2.set_index('id')
这似乎已经解决了问题,我现在可以加入。 如果您有更优雅的解决方案,Id仍然很乐意听到。
您可以使用astype
:
df.index = df.index.astype(int)
例:
In [1]: df1 = pd.DataFrame([[1, 2], [3, 4]], columns=['a', 'b'])
In [2]: df2 = pd.DataFrame([[1, 2], [3, 4]], columns=['c', 'd'], index=['0','1'])
In [3]: df2.index = df2.index.astype(int)
In [4]: df1.join(df2)
Out[4]:
a b c d
0 1 2 1 2
1 3 4 3 4
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.