28

2つのデータフレームを行ごとにマージしようとすると、次のようになります。

bigdata = data1.append(data2)

次のエラーが発生します。

Exception: Index cannot contain duplicate values!

最初のデータフレームのインデックスは0から38で始まり、2番目のデータフレームは0から48で始まります。マージする前にデータフレームの1つのインデックスを変更する必要があることを理解していませんでしたが、方法がわかりません。 。

ありがとうございました。

これらは2つのデータフレームです。

data1

    meta  particle  ratio   area    type    
0   2     part10    1.348   0.8365  touching
1   2     part18    1.558   0.8244  single  
2   2     part2     1.893   0.894   single  
3   2     part37    0.6695  1.005   single  
....clip...
36  2     part23    1.051   0.8781  single  
37  2     part3     80.54   0.9714  nuclei  
38  2     part34    1.071   0.9337  single  

data2

    meta  particle  ratio    area    type    
0   3     part10    0.4756   1.025   single  
1   3     part18    0.04387  1.232   dusts   
2   3     part2     1.132    0.8927  single  
...clip...
46  3     part46    13.71    1.001   nuclei  
47  3     part3     0.7439   0.9038  single  
48  3     part34    0.4349   0.9956  single 

最初の列はインデックスです

4

3 に答える 3

44

このappend関数にはオプションの引数ignore_indexがあり、インデックスはアプリケーションにとって意味がないため、ここでレコードを結合するために使用する必要があります。

于 2011-10-15T16:58:28.077 に答える
1

最初にメソッドを使用してインデックスが重複している(値ではない)行を識別し、groupby次に重複しているインデックスを持つすべての行に対して合計/平均操作を実行できます。

data1 = data1.groupby(data1.index).sum()
data2 = data2.groupby(data2.index).sum()
于 2012-06-06T07:01:50.067 に答える
0

使ってみてくださいpd.concat

bigdata = pd.concat([data1,data2])
于 2021-09-21T07:04:18.817 に答える