Convenient way to deal with ValueError: cannot reindex from a duplicate axis

Convenient way to deal with ValueError: cannot reindex from a duplicate axis

我可以搜索显示此错误消息 'cause' 的建议,但无法搜索解决方法 -

每次尝试通过连接两个现有列中的字符串值向 pandas 数据框添加新列时,我都会遇到此问题。

例如:

wind['timestamp'] = wind['DATE (MM/DD/YYYY)'] + ' ' + temp['stamp']

如果与“ ”合并的第一个项目和第二个项目各自独立 dataframe/series。

这些尝试是为了将日期和时间合并到同一列中,以便 pandas 库将它们识别为日期时间戳。

我不确定是我错误地使用了命令还是 pandas 库功能在内部受到限制,因为它不断返回 duplicate axis 错误消息。我明白后者是极不可能的哈哈哈...

我能听到一些快速简单的解决方案吗?

我的意思是,我认为 sum/subtract 数据框中列值之间的所有这些操作都非常容易。在 table 上显示它应该不会太难吧?

系列之间的操作需要不重复的索引,否则Pandas不知道如何在计算中对齐值。目前您的数据不是这种情况。

如果您确定您的系列按位置对齐,您可以在每个数据帧上调用reset_index

wind = pd.DataFrame({'DATE (MM/DD/YYYY)': ['2018-01-01', '2018-02-01', '2018-03-01']})
temp = pd.DataFrame({'stamp': ['1', '2', '3']}, index=[0, 1, 1])

# ATTEMPT 1: FAIL
wind['timestamp'] = wind['DATE (MM/DD/YYYY)'] + ' ' + temp['stamp']
# ValueError: cannot reindex from a duplicate axis

# ATTEMPT 2: SUCCESS
wind = wind.reset_index(drop=True)
temp = temp.reset_index(drop=True)
wind['timestamp'] = wind['DATE (MM/DD/YYYY)'] + ' ' + temp['stamp']

print(wind)

  DATE (MM/DD/YYYY)     timestamp
0        2018-01-01  2018-01-01 1
1        2018-02-01  2018-02-01 2
2        2018-03-01  2018-03-01 3