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

11 浏览
0 Comments

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

我能够搜索显示这个错误消息的“原因”,但不知道如何解决它——每次尝试通过连接两个现有列中的字符串值来向pandas数据帧添加新列时,我都会遇到这个问题。

例如:

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

如果第一个项目和合并后的第二个项目通过空格分开,它是有效的。

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

我不确定我是否错误地使用了命令,还是pandas库的功能在内部有限,因为它不断返回“重复轴”错误消息。我明白后者是极不可能的哈哈哈...

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

我的意思是,我认为在数据帧中对列值进行求和/减法和所有这些操作应该很容易。在表格上可见也不应该太难吧?

0
0 Comments

方便处理ValueError: cannot reindex from a duplicate axis的方法是调用reset_index函数对每个DataFrame进行重置索引。如果确保系列按位置对齐,可以使用以下代码解决这个问题:

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

通过重置索引,成功解决了ValueError: cannot reindex from a duplicate axis的问题。

0