我有一个数据框,我正在做吨(20+)个创建新列等的计算。所有的计算都运行良好,包括除了大约1行中的2行之外的所讨论的计算,000。这些行彼此不相邻,我找不到任何值得注意的关于这两个特定行的计算似乎跳过。数据是从csv和xlsx文件读取的。故障行来自csv文件中的部分数据。
计算如下:
df['c'] = df['b'] - df['a']
两个故障行的数据如下所示:
['a'] ['b'] ['c']
0 30.6427984591421 0
0 9584.28792256921 0
计算正常的df的其余部分的数据看起来很相似,但处理正确:
['a'] ['b'] ['c']
102411.4521 37008.6603 -65402.7918
202244.75895 211200.2304295 8955.4714795
示例代码:
a = [0, 0, 102411.4521, 202244.75895]
b = [30.6427984591421, 9584.28792256921, 37008.6603, 211200.2304295]
df = pd.DataFrame(zip(a, b), columns=['a', 'b'])
df['c'] = df['b'] - df['a']
为什么计算似乎会跳过这些行?
2条答案
按热度按时间polhcujo1#
您可以尝试在执行此操作之前重置索引。
df = df.reset_index(drop=True)
https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.reset_index.html#pandas-dataframe-reset-index
nue99wik2#
基于the information you supplied,cPython 3.10.8不会重现这个错误。
输出