有谁知道如何计算三列(y轴)的斜率,每一行都有一个固定的x轴?例如,这是我的数据文件:
data = {'a': [1, 2, 3],
'b': [3, 4, 5],
'c': [7, 8, 9]}
df = pd.DataFrame(data, columns=['a', 'b', 'c'])我需要的是创建第四列'd‘,它的斜率为1,3,7,考虑x轴是,例如,1,2,3,这1,2,3x轴,应该考虑每一行数据。
发布于 2021-05-27 17:01:04
尝试这样做,您可以使用np.polyfit()查找斜率(通过将多项式的度定义为1),然后计算d并将其放入字典中,最后将其转换为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, 2, 3],
'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,2,3]函数中的变量compute_slope是硬编码的,因为您提到希望有这样的x值。
输出:
a b c d
0 1 3 7 3.0
1 2 4 8 3.0
2 3 5 9 3.0https://stackoverflow.com/questions/67725975
复制相似问题