微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我可以获取数据帧的三列的斜率并使用 python 中的值创建一个新列吗?

如何解决我可以获取数据帧的三列的斜率并使用 python 中的值创建一个新列吗?

有谁知道如何计算每行固定 x 轴的三列(y 轴)的斜率? 例如,这是我的数据框:

data = {'a':  [1,2,3],'b': [3,4,5],'c': [7,8,9]}
df = pd.DataFrame(data,columns=['a','b','c'])

我需要的是创建斜率为 1、3 和 7 的第四列 'd',假设 x 轴是,例如 1、2 和 3。这个 1、2、3 x -axis,应该考虑每一行数据。

解决方法

试试这个,你可以用np.polyfit()来求斜率(通过定义多项式的次数为1)然后计算d并把它放入你的字典中,最后将其转换为{{ 1}}:

pandas DataFrame

import numpy as np import pandas as pd def compute_slope(arr): return round(np.polyfit([1,2,3],arr,1)[0],2) data = {'a': [1,'b': [3,4,5],'c': [7,8,9]} data['d'] = [compute_slope(list(arr)) for arr in zip(data['a'],data['b'],data['c'])] df = pd.DataFrame(data,columns=['a','b','c','d']) 函数中的变量 [1,3] 是硬编码的,因为您提到您想要拥有这样的 x 值。

输出:

compute_slope

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。