我有以下代码,它生成了一个包含7列和40000行的df:
df = pd.DataFrame(np.random.random(size=(40000, 7)), columns=list('ABCDEFGH'))
如何将小于1/3的每个值替换为“a”,将介于1/3和2/3之间的每个值替换为“b”,将高于2/3和低于1的任何值替换为“c”?我尝试过使用pd.cut(),但它似乎只适用于一列。我也尝试过:
df[df <= 1/3] = "a"
df[(df > 1/3) & (df < 2/3)] = "b"
df[df > 2/3] = "c"
在将整数与第一步中替换的字符串进行比较的第二步中,您可能会遇到错误。试试这个
我们首先进行比较并保存过滤器,然后进行更改
您可以使用^{} ,您可以添加尽可能多的条件和选项^{} 小于,^{} 大于,^{} 小于等于,^{} 大于等于
或者使用^{} 和^{}
使用applymap
Apply map documentation
每当您想“用另一个数组替换数组中的项目”时,您通常都想使用map
相关问题 更多 >
编程相关推荐