将值附加到 Pandas 系列
Posted
技术标签:
【中文标题】将值附加到 Pandas 系列【英文标题】:Append values to Pandas series 【发布时间】:2018-11-08 01:55:35 【问题描述】:我正在通过 pandas 从 SQL 数据库中选择值,但是当我想向现有的 pandas 系列添加新值时,我收到“无法连接非 NDframe 对象”。所以我不确定我应该如何进行。
sql = "select * from table"
df = pd.read_sql(sql, conn)
datovalue = df['Datovalue']
datovalue.append(35)
这就是我打印出来的数据值的样子:
0 736722.0
1 736722.0
2 736723.0
3 736723.0
4 736725.0
如何添加额外的(在这种情况下为第 5 个索引)值?
【问题讨论】:
你能举一个我们可以运行的例子吗? Pandas: what is a NDFrame object (and what is a non-NDFrame object)的可能重复 它只是一个普通的数据框,索引为 0,1,2...,然后是每个索引的对应值。我想为这个系列添加额外的价值。 您的数据框尺寸错误。 我该如何解决?因为我实际上只是从 sql 表列中获取值并尝试在其上添加新值。 【参考方案1】:就用这个
datovalue.append([35])
df = pd.DataFrame([[5],[3]])
df.append([1])
df
0
0 5
1 3
0 1
【讨论】:
【参考方案2】:有几种等效的方法可以通过索引将数据添加到系列中:
s = pd.Series([736722.0, 736722.0, 736723.0, 736723.0, 736725.0])
# direct indexing
s[5] = 35
# loc indexing
s.loc[5] = 35
# loc indexing with unknown index
s.loc[s.index.max()+1] = 35
# append with series
s = s.append(pd.Series([35], index=[5]))
# concat with series
s = pd.concat([s, pd.Series([35], index=[5])])
print(s)
0 736722.0
1 736722.0
2 736723.0
3 736723.0
4 736725.0
5 35.0
dtype: float64
【讨论】:
对于大类型整数,哪一个最快?以上是关于将值附加到 Pandas 系列的主要内容,如果未能解决你的问题,请参考以下文章