方便处理 ValueError: 无法从重复的轴重新索引的方法
方便处理 ValueError: 无法从重复的轴重新索引的方法
我能够搜索显示这个错误消息的“原因”,但不知道如何解决它——每次尝试通过连接两个现有列中的字符串值来向pandas数据帧添加新列时,我都会遇到这个问题。
例如:
wind['timestamp'] = wind['DATE (MM/DD/YYYY)'] + ' ' + temp['stamp']
如果第一个项目和合并后的第二个项目通过空格分开,它是有效的。
这些尝试是为了将日期和时间合并到同一列中,以便pandas库将它们识别为日期时间戳。
我不确定我是否错误地使用了命令,还是pandas库的功能在内部有限,因为它不断返回“重复轴”错误消息。我明白后者是极不可能的哈哈哈...
我能听到一些快速简单的解决方案吗?
我的意思是,我认为在数据帧中对列值进行求和/减法和所有这些操作应该很容易。在表格上可见也不应该太难吧?
方便处理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的问题。