首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Pandas DataFrame:使用列轴索引添加具有行值总和的列?

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

Stack Overflow用户
提问于 2020-07-19 10:03:11
回答 1查看 77关注 0票数 1

查看之前提出的问题,我找不到有帮助的答案,因为我的专栏是通过混合使用pytrends值和yfinance值生成的。

下面是获取相关数据帧的代码:

代码语言:javascript
运行
复制
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()

这将为我的search_rank (第一行)返回一个pandas数据帧:

代码语言:javascript
运行
复制
date                | TER | Teradyne, Inc. | Teradyne | isPartial
2004-01-01 00:00:00 | 25  | 0              | 1        | False

我想要做的是删除isPartial列,并将其替换为"Rank“列,该列将从第1列、第2列和第3列获取值并将它们相加,从而使其看起来如下所示:

代码语言:javascript
运行
复制
date                | TER | Teradyne, Inc. | Teradyne | Rank
2004-01-01 00:00:00 | 25  | 0              | 1        | 26

任何关于我如何实现这一点的想法都将是一个巨大的帮助!

PS:我不想使用实际列名的原因是因为此信息将根据滚动条的不同而变化。另外,我是python的新手,基本上还在学习>.<

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-19 10:21:04

删除一列

代码语言:javascript
运行
复制
del search_rank['isPartial']

添加计算列

代码语言:javascript
运行
复制
search_rank['Rank'] = df.apply(lambda row: row[0]+row[1] + row[2], axis=1)

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

代码语言:javascript
运行
复制
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)

输出:

代码语言:javascript
运行
复制
 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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62975553

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档