Pandas DataFrame 'ValueError: Operands are not aligned' 错误解决方法
Pandas DataFrame 'ValueError: Operands are not aligned' 错误解决方法
在使用 Pandas DataFrame 进行数据操作时,你可能会遇到以下错误:
Traceback (most recent call last):
File "B:\人工智能实验\人工智能\程序源代码\源代码(对应大报告)\v7.py", line 149, in <module>
df.drop(df[(np.abs(df[['angle1','angle2','angle3', 'angle4','angle5','angle5_1' ,'angle6', 'angle7','angle8','angle9','angle10','angle11']] - df[['angle1','angle2','angle3', 'angle4','angle5','angle5_1' ,'angle6', 'angle7','angle8','angle9','angle10','angle11']].mean()) > 2 * df[['angle1','angle2','angle3', 'angle4','angle5','angle5_1' ,'angle6', 'angle7','angle8','angle9','angle10','angle11']].std()).any(axis=1)].index, inplace=True)
File "C:\Users\TX\AppData\Local\Programs\Python\Python39\lib\site-packages\pandas\core\ops\common.py", line 81, in new_method
return method(self, other)
File "C:\Users\TX\AppData\Local\Programs\Python\Python39\lib\site-packages\pandas\core\arraylike.py", line 56, in __gt__
return self._cmp_method(other, operator.gt)
File "C:\Users\TX\AppData\Local\Programs\Python\Python39\lib\site-packages\pandas\core\frame.py", line 7442, in _cmp_method
self, other = ops.align_method_FRAME(self, other, axis, flex=False, level=None)
File "C:\Users\TX\AppData\Local\Programs\Python\Python39\lib\site-packages\pandas\core\ops\__init__.py", line 323, in align_method_FRAME
raise ValueError(
ValueError: Operands are not aligned. Do `left, right = left.align(right, axis=1, copy=False)` before operating.
这个错误是由于 DataFrame 的列没有对齐导致的。可以尝试在操作之前使用 align 方法对 DataFrame 进行对齐。
在你的代码中,可以将以下两行代码添加到报错的那一行之前:
df = df[['angle1','angle2','angle3', 'angle4','angle5','angle5_1' ,'angle6', 'angle7','angle8','angle9','angle10','angle11']].align(df[['angle1','angle2','angle3', 'angle4','angle5','angle5_1' ,'angle6', 'angle7','angle8','angle9','angle10','angle11']], axis=1, copy=False)
df.drop(df[(np.abs(df[0] - df[1].mean()) > 2 * df[1].std()).any(axis=1)].index, inplace=True)
这样可以确保两个 DataFrame 的列对齐,然后再进行操作。
原文地址: https://www.cveoy.top/t/topic/fzYG 著作权归作者所有。请勿转载和采集!