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

时间:2018-10-12 00:27:41

标签: python pandas indexing append series

我正在尝试构建一个熊猫系列以连接到数据框。

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)

此程序有效,但出现错误消息:

“第25行:FutureWarning:不建议使用set_value,并将在以后的版本中将其删除。请改用.at []或.iat []访问器。”

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

正确的做法是什么?

1 个答案:

答案 0 :(得分:2)

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

对于要运行的算法,只需使用赋值即可:

strikes = rawData['Symbol'].str[-6:].astype(float) / 1000