如何解决我可以获取数据帧的三列的斜率并使用 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 举报,一经查实,本站将立刻删除。