如何在熊猫系列中用 at[] 替换 set_value

use*_*305 3 python indexing append series pandas

我正在尝试构建一个熊猫系列来连接到数据帧上。

import numpy as np
import pandas as pd

rawData = pd.read_csv(input, header=1) # the DataFrame

strikes = pd.Series()     # the empty Series
for i, row in rawData.iterrows():
    sym = rawData.loc[i,'Symbol']
    strike = float(sym[-6:])/1000
    strikes = strikes.set_value(i, strike)
print("at26: ",strikes.values)
Run Code Online (Sandbox Code Playgroud)

该程序有效,但我收到错误消息:

“第 25 行:FutureWarning:set_value 已弃用,将在未来版本中删除。请改用 .at[] 或 .iat[] 访问器。”

我尝试以任何方式替换 .at 时,都会出现语法错误。发布的许多建议与 DataFrames 相关,而不是 Series。Append 需要另一个系列,当我给它一个标量时会抱怨。

什么是正确的方法呢?

jpp*_*jpp 5

替换strikes.set_value(i, strike)strikes.at[i] = strike

请注意,不需要将分配回系列set_value

s = pd.Series()

s.set_value(0, 10)
s.at[1] = 20

print(s)

0    10
1    20
dtype: int64
Run Code Online (Sandbox Code Playgroud)

对于您要运行的算法,您可以简单地使用赋值:

strikes = rawData['Symbol'].str[-6:].astype(float) / 1000
Run Code Online (Sandbox Code Playgroud)