首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >熊猫系列插入错误,缺少位置参数,不匹配索引长度

问熊猫系列插入错误,缺少位置参数,不匹配索引长度
EN

Stack Overflow用户
提问于 2018-12-14 15:29:28
回答 2查看 674关注 0票数 0

我有一个清单,我正试图增加一个价值,但我不确定最好的方法来做到这一点。我读到过.insert()是最好的方法,但是在尝试了两种不同的方法之后,我似乎无法让它发挥作用。

我试过了

代码语言:javascript
复制
df_full_modified = df_full['date', 'b_clicks', 'b_cpc'].insert(0, ['date', 'b_clicks', 'b_cpc'])

回传

代码语言:javascript
复制
TypeError: insert() missing 1 required positional argument: 'value'

并尝试为columns参数添加一个值。

代码语言:javascript
复制
df_full_modified = df_full['date', 'b_clicks', 'b_cpc'].insert(0, ['date', 'b_clicks', 'b_cpc'], ['date', 'b_clicks', 'b_cpc'])

回传

代码语言:javascript
复制
ValueError: Length of values does not match length of index

当我试图将数组映射到insert()方法时,是不是遗漏了什么?

以下是数据帧df_full的格式

代码语言:javascript
复制
[['2018-01-01', '72', 2.43], ['2018-01-02', '232', 2.8], ['2018-01-03', '255', 2.6], ...

我正试着把['date', 'b_clicks', 'b_cpc']做好

代码语言:javascript
复制
[['date', 'b_clicks', 'b_cpc'], ['2018-01-01', '72', 2.43], ['2018-01-02', '232', 2.8], ['2018-01-03', '255', 2.6], ...
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-12-14 16:00:17

你已经有这样的df了:

代码语言:javascript
复制
          date  b_clicks  b_cpc
0  2018-01-01'        72   2.43
1  2018-01-02'       232   2.80
2  2018-01-03'       255   2.60

你想在顶部插入一行。df.insert将列插入到指定的位置,而不是一行。看起来,您理解可以使用列表来完成此操作,因此您可以通过创建一个新列表,并使用您指定的单词创建一个新列表,并将您已经拥有的df连接到新列表中,从而执行相同的操作:

代码语言:javascript
复制
data = []
data.insert(0, {'date': 'date', 'b_clicks': 'b_clicks', 'b_cpc': 'b_cpc'})

df_full_modified = pd.concat([pd.DataFrame(data), df], ignore_index=True)

产出:

代码语言:javascript
复制
>>> df_full_modified
   b_clicks  b_cpc         date
0  b_clicks  b_cpc         date
1        72   2.43  2018-01-01'
2       232    2.8  2018-01-02'
3       255    2.6  2018-01-03'
票数 1
EN

Stack Overflow用户

发布于 2018-12-14 15:47:27

如果我正确理解您的初步立场,那么所提供的列表将存储在熊猫系列中,例如:

代码语言:javascript
复制
a = pd.Series([['2018-01-01', '72', 2.43], ['2018-01-02', '232', 2.8], ['2018-01-03', '255', 2.6]])

如果是,那么您只需为['date', 'b_clicks', 'b_cpc']变量创建一个Series,如下所示:

代码语言:javascript
复制
b = pd.Series({['date', 'b_clicks', 'b_cpc']])

最后将b附加到a中。

代码语言:javascript
复制
b = b.append(a)

但是,使用这种方法,您将不得不在本系列的开始时选择0英寸。我不知道它是否困扰着你。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53782623

复制
相关文章

相似问题

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