【发布时间】:2023-01-09 17:44:12
【问题描述】:
我有一个熊猫数据框,其中包含逐场篮球数据。
我想查看玩家错过投掷的游戏事件列,如果他错过了投掷,我想添加一个新列“Missed throw”,并在此行中将值设置为 0 到 1。 如果他错过了下一次投掷,我想将列中的值从 1 增加到 2 等。
这是我的数据框
import pandas as pd
url = 'https://www.basketball-reference.com/boxscores/pbp/200911060GSW.html'
dfs = pd.read_html(url)
df = dfs[0]
df.columns = df.columns.droplevel() # drops the "1st Q" Multilevel header of the dataframe
df.rename(columns={'Unnamed: 2_level_1': 'PM1', 'Unnamed: 4_level_1': 'PM2'}, inplace=True)
df
然后我做了咖喱的一个子集,因为我专注于他的行为。
df_curry = df.loc[df["Golden State"].str.contains("Curry", na=False)]
df_curry`
现在我尝试将命中而不是命中抛出插入到新列中以稍后计算报价但我总是收到错误“str”对象没有属性“str”。 也许有人可以帮助我或给我另一种方法
# Calculating Hit Rate
field_throws_missed = 0
field_throws_hit = 0`
# Creating the new Columns
df_curry["Field Goals Hit"] = 0
df_curry["Field Goals Missed"] = 0
df_curry["Field Goals Percentage"] = 0`
for row in range(len(df_curry["Golden State"])):
if df_curry.iloc[row]["Golden State"].str.contains("misses 2|misses 3"):
field_throws_missed += 1
df_curry.iloc[row]["Field Goals Missed"] = field_throws_missed
elif df_curry.iloc[row]["Golden State"].str.contains("makes 2|makes 3"):
field_throws_hit += 1
df_curry.iloc[row]["Field Goals Hit"] = field_throws_hit`
【问题讨论】:
标签: python pandas data-science