python - 像 excel 一样更新 pandas Dataframe 中的列
问题描述
在 python 中请求 excel 功能有点尴尬,但我需要帮助找到一种有效的方法来做到这一点,这样我才能在这个项目中脱离 excel。
对我来说,excel 的一个优势是一个表格,其中所有列都根据另一列中的输入进行更新。我想这样做的一种方法是在函数中:
def update_columns(x, y):
mt = x * y
sm = x + y
sb = x - y
dv = x / y
cols = {'x' : x, 'y' : y, 'mt' : mt, 'sm' : sm, 'sb' : sb, 'dv' : dv}
return cols
df = pd.DataFrame(columns=['x', 'y', 'mt', 'sm', 'sb', 'dv'])
new_vals = [(10, 5), (15, 3), (40, 4)]
for i in new_vals:
x, y = i
cols = update_columns(x, y)
df = df.append(cols, ignore_index=True)
然而,我想有一种更优雅、更 Pythonic 的方式来解决这个问题。是否可以在列表或字典中使用嵌入式 lambda 函数?或者一些集合函数,比如命名元组,或者一个数据类/属性类?有人可以提出一些建议吗?
解决方案
您定义update_columns
函数的方式,您可以(并且应该)只传递整个列:
new_vals = np.array(new_vals)
df = pd.DataFrame(update_columns(new_vals[:,0], new_vals[:,1]))
输出:
x y mt sm sb dv
0 10 5 50 15 5 2.0
1 15 3 45 18 12 5.0
2 40 4 160 44 36 10.0
推荐阅读
- python - 在python中使用lambda函数存储字典
- swift - UISwipeGesture 未注册第一次滑动
- python - 将从csv读取的多列数据排序到Python3列表中不起作用
- excel - 使用 Excel 宏重新格式化单元格内容
- reactjs - React Router 'NotFoundPage' 总是出现!如何解决?
- dynamic - 调用 cl_salv_bs_runtime_info=>get_data_ref() 时类型不匹配
- html - 嵌套在无线电组中的两张卡的问题
- c# - LINQ 计数具有倍数的 XML 元素
- javascript - 实例化后将 React key prop 设置为动态组件数组
- c - 简单外壳:处理管道导致无限循环