将一列值替换为另一列



我有一个 6 列的数据框,其中 2 列应绘制为 x 和 y。我想用其他值替换第 6 列的值,然后排除值大于阈值的 x、y,例如 0.0003-0.002。我的努力如下:

import numpy as np
import os
import matplotlib.pyplot as plt
import pandas as pd
df = pd.read_csv('configuration_1000.out', sep="s+", header=None)
#print(df)
col_5 = df.iloc[:,5]
g = col_5.abs()
g = g*0.00005
#print(g)
df.loc[:,5].replace(g, inplace=True)
#df.head()
selected = df[ (df.loc[:,5] > 0.0003) & (df.loc[:,5] < 0.002) ]
print(selected)
plt.plot(selected[0], selected[1],marker=".")

但是当我这样做时,什么都不会改变。

您不需要 iloc,也不需要完成中间步骤。只需直接操作列即可。

df[df.columns[5]] = abs(df[df.columns[5]])*0.00005

要解决这个问题只需要这样做

df.loc[:,5] = g

最新更新