python——这是基于其他列中的条件使用pandas更新列的有效方法吗
发布时间:2022-03-21 18:56:37 495
相关标签: # node.js
这是基于其他列中的条件使用pandas更新列的有效方法吗?我希望推广一个更新函数,该函数将移动高斯值,我很难使用lambda,因为有多个列可能是条件。同样,apply也有问题,因为我无法让变量以它想要的形式出现,不过老实说,我可能会在这方面花更多时间。
问题陈述:我应该如何根据另一列中的值来更新大熊猫数据帧,以便在可接受的速度参数内运行这些函数?请给出一个完整的例子,如果可能的话,使用我的“傻_系列_生成器”来确保我们保持相同的问题案例。谢谢
import random
import pandas
def silly_series_generator():
# requires import of random and pandas
ret = []
ret.append(r.choice(['X', 'Y', 'Z']))
for i in range(9):
ret.append(random.gauss(0,1))
return pandas.Series(ret, list("ABCDEFGHIJ"))
def silly_update(df, condition_col, condition_value, target_col, mean, sd = .1):
# requires import of random and pandas
effected_cells = df[condition_col] == condition_value[0]
x = df[effected_cells][target_col] + r.gauss(mean, sd)
df[target_col].update(x)
return df
def run_test():
# requires import of random and pandas
# requires functions: silly_series_generator and silly_update
rows = []
for i in range(50):
rows.append(silly_series_generator())
original_df = pd.DataFrame(rows)
print('original_df',original_df['B'].mean())
updated_df = silly_update(original_df, 'A', 'X', 'B', 1)
print('updated_df', updated_df['B'].mean())
if __name__ == "__main__":
run_test()
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报