columns overlap but no suffix specified:Index(['data 1','data 2'],dtype='object')解決方法
1537 ワード
エラーを記録します.
まず,このエラーはpandasのjoinメソッドを用いて2つのDataFrameを接続したために発生したエラーであることを説明する.エラーの原因:カラム名の重複解決方法:カラム名を重複しないように変更する
最後の文を実行すると、
よく使われる方法は2つあります.1.カラム名をcolumnで変更する
2.add_を使うprofixカラム名に指定した文字列接頭辞を追加
columns overlap but no suffix specified: Index(['data1', 'data2'], dtype='object')
まず,このエラーはpandasのjoinメソッドを用いて2つのDataFrameを接続したために発生したエラーであることを説明する.エラーの原因:カラム名の重複解決方法:カラム名を重複しないように変更する
df = pd.DataFrame({'data1':np.random.rand(5),
'data2':np.random.rand(5),
'key1':list('aabba'),
'key2':['one','two','one','two','one']})
print(df)
# df , ,
# 1.
df_mean = df.groupby('key1').mean()
print(df_mean)
print(pd.merge(df, df_mean, how='inner', left_on='key1', right_index=True))
# 2. transform
a = df.groupby('key1').transform(np.mean)
print(a)
print(df.join(a, how='inner'))
最後の文を実行すると、
columns overlap but no suffix specified: Index(['data1', 'data2'], dtype='object')
とエラーが発生し、2つのDataFrameのカラム名が重複していることがわかりました.joinはmergeのように、mergeは重複したカラム名に_x,_y
を自動的に加えて区別し、joinは直接エラーを報告します.だから、私たちの解決策はその列明を修正すればいいのです.よく使われる方法は2つあります.1.カラム名をcolumnで変更する
a = df.groupby('key1').transform(np.mean)
print(a)
a.columns = ['a', 'b']
print(df.join(a, how='inner'))
2.add_を使うprofixカラム名に指定した文字列接頭辞を追加
a = df.groupby('key1').transform(np.mean).add_prefix('mean_')
print(a)
print(df.join(a, how='inner'))