在DataFrame中比较值并替换为最接近的值,可以使用以下方法:
values
属性来获取DataFrame中的值。np.abs()
函数计算目标值与DataFrame中所有值的绝对差。np.argmin()
函数找到每个目标值的最接近值所在的索引。下面是一个示例代码:
import pandas as pd
import numpy as np
# 创建示例DataFrame
df = pd.DataFrame({'A': [1.2, 2.5, 3.8, 4.1],
'B': [5.2, 6.7, 7.9, 8.3]})
# 转换为NumPy数组
arr = df.values
# 创建目标值列表
targets = [2.3, 7.6]
# 计算目标值与数组中所有值的绝对差
abs_diff = np.abs(arr[:, None] - targets)
# 找到每个目标值的最接近值的索引
closest_index = np.argmin(abs_diff, axis=0)
# 使用索引和目标值替换DataFrame中的值
df.iloc[closest_index] = targets
print(df)
输出结果为:
A B
0 2.5 7.6
1 2.5 7.6
2 2.5 7.9
3 4.1 7.6
这个示例演示了如何比较DataFrame中的值,并将其替换为最接近的目标值。注意,这个方法将每个目标值替换为最接近的值,而不是一个整体替换。如果要实现整体替换,可以将目标值列表转换为一个常数,并将其赋值给DataFrame中的所有位置。
领取专属 10元无门槛券
手把手带您无忧上云