【问题标题】:Merging of values in the columns of a dataframe合并数据框列中的值
【发布时间】:2021-05-22 05:59:22
【问题描述】:

我有一个数据框

import yfinance as yf
import numpy as np
from scipy.signal import argrelextrema
import matplotlib.pyplot as plt
import pandas as pd

company_name = "INFY.NS"
df = yf.Ticker(company_name).history(period='400d', interval='1D')

现在,我有一个作为 df1 的数据框。我正在计算获取最大值和最小值。

n = 2
df['min'] = df.iloc[argrelextrema(df['Close'].values, np.less_equal,order=n)[0]]['Close']
df['max'] = df.iloc[argrelextrema(df['Close'].values, np.greater_equal,order=n)[0]]['Close']
print()

因此数据框看起来像这样

但是,我只想要一个名为 MACD 的列,而不是这两列,即 max 和 min,并希望在其中添加 max 和 min 列的值。 因此,

  • 如果 max 为 none 而 min 有值,则添加 MACD 列,反之亦然
  • 如果 max 和 min 都是 Nan,则删除该行。

最好的方法是什么?

【问题讨论】:

  • 建议将您的数据添加为文本,我们不能从图像中复制内容。
  • 而不是添加数据框,仅通过运行代码行,所有数据都可用@ThePyGuy。这就是为什么给出代码,请检查
  • 这需要安装yfinance。无论如何,这是关于偏好,这只是一个温和的建议。

标签: python python-3.x pandas dataframe


【解决方案1】:

我已经得到了合并列和删除 Nan 列的答案,在这里发布代码。

df['total'] = df['min'].combine_first(df['max'])
df = df.dropna(subset=['total'])

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-08
    • 1970-01-01
    • 1970-01-01
    • 2023-01-13
    • 1970-01-01
    • 2020-09-04
    • 2016-07-14
    • 1970-01-01
    相关资源
    最近更新 更多