Panda系列插入错误缺少位置参数并且与索引长度不匹配



我有一个列表,我正试图在其中预先添加一个值,但我不确定这样做的最佳方法。我读到.insert()是最好的方法,但在尝试了两种不同的方法后,我似乎无法使其发挥作用。

我试过

df_full_modified = df_full['date', 'b_clicks', 'b_cpc'].insert(0, ['date', 'b_clicks', 'b_cpc'])

返回

TypeError: insert() missing 1 required positional argument: 'value'

并且还尝试添加CCD_ 2参数的值

df_full_modified = df_full['date', 'b_clicks', 'b_cpc'].insert(0, ['date', 'b_clicks', 'b_cpc'], ['date', 'b_clicks', 'b_cpc'])

返回

ValueError: Length of values does not match length of index

尝试将数组映射到insert()方法时是否遗漏了什么?

以下是数据帧df_full:的格式

[['2018-01-01', '72', 2.43], ['2018-01-02', '232', 2.8], ['2018-01-03', '255', 2.6], ...

我正试图准备['date', 'b_clicks', 'b_cpc']使其成为

[['date', 'b_clicks', 'b_cpc'], ['2018-01-01', '72', 2.43], ['2018-01-02', '232', 2.8], ['2018-01-03', '255', 2.6], ...

IIUC您已经有了这样的df:

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连接到新列表:

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)

输出:

>>> 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'

如果我正确理解您最初的观点,那么所提供的列表将存储在pandas系列中,如:

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']变量创建一个系列,例如:

b = pd.Series({['date', 'b_clicks', 'b_cpc']])

并最终将CCD_ 7与CCD_

b = b.append(a)

然而,使用这种方法,您将不得不在该系列的开头使用0 indeces。我不知道这是否困扰着你。

最新更新