1

DataFrame1 と DataFrame2 を結合できません。これは、そのうちの 1 つに int64 インデックスがあり、もう 1 つに文字列インデックスがあるためだと思われます。文字列インデックスを int64 インデックスに変換するにはどうすればよいですか (これが実際に問題である場合)。そうでない場合、これら 2 つのデータ フレームをマージするにはどうすればよいですか?

データフレーム1

<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)

データフレーム2

<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)
4

2 に答える 2

1
DataFrame2['id'] = DataFrame2.index.map(int)
DataFrame2.set_index('id')

これで問題が解決したようで、参加できるようになりました。もっと洗練された解決策があれば、ぜひ聞いてみたいです。

于 2013-04-09T06:46:43.713 に答える
1

使用できます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
于 2013-04-09T07:08:03.340 に答える