Pandas 如何将一行拟合到此数据?

Pandas 如何将一行拟合到此数据?,pandas,numpy,scipy,Pandas,Numpy,Scipy,我得到了以下数据: 我对在“中间位”(截距0)上拟合一条直线感兴趣。我该怎么做?这将是有用的,以获得一个数字的梯度以及 (仅供参考,这些是现金交易的列表,进出。梯度为利润或亏损) 以下是一些数据: 您可以使用numpy.polyfit和numpy.poly1d来实现: import matplotlib.pyplot as plt import numpy as np # Create data ls = np.linspace(0, 100) s = np.random.rand(len

我得到了以下数据:

我对在“中间位”(截距0)上拟合一条直线感兴趣。我该怎么做?这将是有用的,以获得一个数字的梯度以及

(仅供参考,这些是现金交易的列表,进出。梯度为利润或亏损)

以下是一些数据:

您可以使用
numpy.polyfit
numpy.poly1d
来实现:

import matplotlib.pyplot as plt
import numpy as np

# Create data

ls = np.linspace(0, 100)
s = np.random.rand(len(ls))*100 + ls

# Fit the data

z = np.polyfit(ls, s, deg=1)
p = np.poly1d(z)

# Plotting

plt.figure(figsize=(16,4.5))

plt.plot(ls, s, 
         alpha=.75, label='signal')

plt.plot(ls, p(ls), 
         linewidth=1, linestyle='--', color='r', label='polyfit')

plt.legend(ncol=2)


使用您提供的数据:


您可以使用
numpy.polyfit
numpy.poly1d
来实现:

import matplotlib.pyplot as plt
import numpy as np

# Create data

ls = np.linspace(0, 100)
s = np.random.rand(len(ls))*100 + ls

# Fit the data

z = np.polyfit(ls, s, deg=1)
p = np.poly1d(z)

# Plotting

plt.figure(figsize=(16,4.5))

plt.plot(ls, s, 
         alpha=.75, label='signal')

plt.plot(ls, p(ls), 
         linewidth=1, linestyle='--', color='r', label='polyfit')

plt.legend(ncol=2)


使用您提供的数据:


您所说的“中间位”是指在视觉上似乎将数据分成上下两部分的曲线吗?(精确拟合将相当困难。)你是说“截距0”是指直线应该穿过点[0,0]?一条直线的坡度与斜率无关;除非你想要数据的梯度,这会让这些锐利的边缘看起来很糟糕。你是说“中间位”是指从视觉上看似乎将数据分成上下两部分的曲线吗?(精确拟合将相当困难。)你是说“截距0”是指直线应该穿过点[0,0]?一条直线的坡度与斜率无关;除非你想要数据的梯度,因为这些尖锐的边缘看起来很可怕。