python - 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'
columns
并且还尝试为参数添加一个值
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'
推荐阅读
- node.js - 具有此 Unix 命令的 PowerShell 等效命令
- c# - 设置两个具有相同 JsonProperty 的字段
- android - 片段导航问题
- ios - 使用 Swift IOS 打开特定专辑
- javascript - 在单个页面中处理多个电子邮件 HTML
- php - Xampp 和 live Host 上的登录都停止工作,但之前可以工作
- spring-boot - 使用页面(可分页)springboot后无法提取结果集
- hibernate - 当我将十进制值添加到始终加密的数据库中时,它显示错误
- html - 媒体查询不适用于不同的屏幕
- java - Spark-Java:连接聚合 groupBy 的结果