我想在系列
中查找一个数字,并在[1,2,3]
中找到它最接近的数字。然后使用键
将系列值替换为适当的字母。
key = {1: 'A', 2:'B', 3:'C')
series = pd.Series([x*1.2 for x in range(10)])
pd.DataFrame = key[min([1,2,3], key=lambda x: abs(x-series))]
系列
是pd.DataFrame
中的一列,我只是尝试在这里简化它。
最佳答案
使用apply
方法,然后映射
您的系列
,例如:
key = {1: 'A', 2:'B', 3:'C'}
series = pd.Series([x*1.2 for x in range(10)])
def find(myNumber):
return min([1,2,3], key=lambda x:abs(x-myNumber))
series.apply(find).map(key)
Out[50]:
0 A
1 A
2 B
3 C
4 C
5 C
6 C
7 C
8 C
9 C
dtype: object
如果您用整个数据框替换系列,它也应该可以工作,例如:
df.apply(find).map(key)
关于python - 将系列映射到 min(list, key=lambda x : abs(series)) function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40061889/