我正在尝试解析数据框并仅缩放符合特定条件的值。例如,如果我有:
df = [1,2,3,4]
我希望将所有小于2的值缩放10,我想返回以下数据帧:
df = [10,2,3,4]
现在,我的功能如下:
def scaleLessPartColumn(dataFrame, column_name, scale_factor, sort_num):
dataFrame.ix[(dataFrame[column_name] < sort_num), column_name] *= scale_factor
return dataFrame
但我相信这会缩放整个专栏而不是具体的参赛作品。
任何帮助将不胜感激!谢谢!
答案 0 :(得分:0)
这有效:
dataFrame[dataFrame[column_name] < sort_num] *= scale_factor
实施例:
df = pd.DataFrame({"A": [1,2,3,4], "B": [5,2,4,3], "C": [2,2,1,4]})
df
# A B C
#0 1 5 2
#1 2 2 2
#2 3 4 1
#3 4 3 4
df[df[["A", "B"]] < 3] *= 10
df
# A B C
#0 10 5 2
#1 20 20 2
#2 3 4 1
#3 4 3 4
但你可能会发现这更具可读性:
dataFrame[column_name] = dataFrame[column_name].where(dataFrame[column_name]>=sort_num,
dataFrame[column_name]*scale_factor)