我收到以下错误
pandas.core.indexes.base.InvalidIndexError: Reindexing only valid with uniquely valued Index objects
关于代码
dfp = pd.concat([df, tdf], axis=1)
我正在尝试将tdf
的列连接到df
的列。
对于这些打印声明
print(df.shape)
print(tdf.shape)
print(df.columns)
print(tdf.columns)
print(df.index)
print(tdf.index)
我得到以下输出:
(70000, 25)
(70000, 20)
Index(['300', '301', '302', '303', '304', '305', '306', '307', '308', '309',
'310', '311', '312', '313', '314', '315', '316', '317', '318', '319',
'320', '321', '322', '323', '324'],
dtype='object')
Index(['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13',
'14', '15', '16', '17', '18', '19', '20'],
dtype='object')
Int64Index([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
...
9990, 9991, 9992, 9993, 9994, 9995, 9996, 9997, 9998, 9999],
dtype='int64', length=70000)
RangeIndex(start=0, stop=70000, step=1)
任何主意是什么问题?为什么索引会成为问题?因为我连接列而不是行,所以索引应该是相同的。列值似乎完全不同。
谢谢!
答案 0 :(得分:1)
问题是df
没有唯一索引。因此,您需要重置索引
pd.concat([df.reset_index(),tdf], axis=1)
或放下它
pd.concat([df.reset_index(drop=True),tdf], axis=1)