处理ValueError的便捷方法:无法从重复轴重新索引

2024-05-23 20:04:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我可以搜索显示此错误消息“原因”的建议,但不能搜索如何解决它-

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

例如:

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

如果与“”合并的第一个项和第二个项都是单独的数据帧/序列,则此方法有效。

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

我不确定我是否错误地使用了该命令,或者熊猫库的功能是否受到内部限制,因为它一直返回duplicate axis错误消息。我知道后者不太可能,哈哈哈。。。

我能听到一些简单快捷的解决办法吗?

我的意思是,我认为在数据帧中的列值之间进行sum/subtract和所有这些操作都非常容易。把它放在桌子上也不难吧?


Tags: 数据字符串消息pandasdate错误时间原因
1条回答
网友
1楼 · 发布于 2024-05-23 20:04:04

序列之间的操作需要不重复的索引,否则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

相关问题 更多 >