为了账号安全,请及时绑定邮箱和手机立即绑定

Pandas DataFrame:使用列轴索引添加具有行值总和的列?

Pandas DataFrame:使用列轴索引添加具有行值总和的列?

慕雪6442864 2023-03-16 17:28:48
查看之前提出的问题,我找不到有用的答案,因为我的专栏是通过混合使用 pytrends 和 yfinance 值生成的。这是获取相关数据框的代码:import yfinance as yffrom pytrends.request import TrendReq as trticker = "TER"pytrends = tr(hl='en-US', tz=360)# =============================================================================# Get Stock Information# These variables are stored as DataFrames# =============================================================================stock = yf.Ticker(ticker)i = stock.infostock_info = {'Ticker':ticker}stock_info.update(i)# =============================================================================# Get Google Trends Ranking for our Stock# =============================================================================longName = stock_info.get('longName')shortName = stock_info.get('shortName').split(',')[0]keywords = [ticker, longName, shortName]pytrends.build_payload(keywords, timeframe='all')search_rank = pytrends.interest_over_time()这会为我的 search_rank(第一行)返回一个 pandas 数据框:date                | TER | Teradyne, Inc. | Teradyne | isPartial2004-01-01 00:00:00 | 25  | 0              | 1        | False我想做的是删除 isPartial 列并将其替换为“Rank”列,该列将从第 1、2 和 3 列中获取值并将它们相加,这样它看起来像这样:date                | TER | Teradyne, Inc. | Teradyne | Rank2004-01-01 00:00:00 | 25  | 0              | 1        | 26关于如何完成这项工作的任何想法都将是一个巨大的帮助!PS:我不想使用实际列名的原因是因为此信息会根据股票行情而改变。另外,我是 python 的极度菜鸟,基本上还在学习 >.<
查看完整描述

1 回答

?
ibeautiful

TA贡献1993条经验 获得超6个赞

删除一列


del search_rank['isPartial']

添加计算列


search_rank['Rank'] = df.apply(lambda row: row[0]+row[1] + row[2], axis=1)

我用上面的修改测试了你的代码,这里是完整的代码


import yfinance as yf

from pytrends.request import TrendReq as tr


ticker = "TER"

pytrends = tr(hl='en-US', tz=360)


# =============================================================================

# Get Stock Information

# These variables are stored as DataFrames

# =============================================================================

stock = yf.Ticker(ticker)

i = stock.info

stock_info = {'Ticker':ticker}

stock_info.update(i)


# =============================================================================

# Get Google Trends Ranking for our Stock

# =============================================================================

longName = stock_info.get('longName')

shortName = stock_info.get('shortName').split(',')[0]


keywords = [ticker, longName, shortName]

pytrends.build_payload(keywords, timeframe='all')

search_rank = pytrends.interest_over_time()

del search_rank['isPartial']

search_rank['Rank'] = search_rank.apply(lambda row: row[0]+row[1]+row[2] , axis=1)


print(search_rank)

输出:


 Date        TER  Teradyne, Inc.  Teradyne  Rank

2004-01-01   25               0         1    26

2004-02-01   25               0         1    26

2004-03-01   29               0         1    30


查看完整回答
反对 回复 2023-03-16
  • 1 回答
  • 0 关注
  • 131 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号