Python中文
首页
教程
问答
标签
搜索
登录
注册
Pandas Dataframe.loc+在非唯一日期时间索引上更新?
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>希望这是一个非常简单的问题,我还没有找到解决方案。我有一个带有时间戳(%Y-%m-%d)索引的数据帧,我希望能够使用.loc更新单行,知道datetime索引值</p> <p>我知道索引是非唯一的,这意味着偶尔我会得到比我想要更新的行更多的内容。因此,我在第二列上对数据帧进行了排序,以便我要更新的行始终是该索引值的最后一行</p> <p>所讨论的数据帧是一个大得多的数据帧的子集副本,在不使用.loc的情况下设置一个值是不起作用的-因此我限制使用.loc</p> <p>我的问题是:是否有一种方法可以引用最后一行作为索引值并根据索引进行更新? 显然,仅使用索引值将使用该索引更新所有行,argmax似乎不适用于时间戳,尽管我可以临时重新创建索引以使用我排序的另一列,但如果有直接方法,我宁愿不使用此三步解决方案</p> <p>请参阅下面的示例数据帧代码-我想要的是一种使用df['sort']='d'只更新行的方法,我知道这将是索引的最后一个,如果可能的话,完全基于索引值。非常感谢</p> <pre><code>l1 = [datetime.today().date()] * 4 l2 = list(range(1,5)) l3 = ['a','b','c','d'] df= pd.DataFrame(list(zip(l1,l2,l3)),columns=['datetime','value','sort']) df.set_index('datetime',inplace=True) df Out[1317]: value sort datetime 2021-10-22 1 a 2021-10-22 2 b 2021-10-22 3 c 2021-10-22 4 d df.loc[df.index[-1].argmax()] Traceback (most recent call last): File "<ipython-input-1318-e1758b122814>", line 1, in <module> df.loc[df.index[-1].argmax()] AttributeError: 'datetime.date' object has no attribute 'argmax' df.loc[df.index[-1],'value'] = 5 df Out[1320]: value sort datetime 2021-10-22 5 a 2021-10-22 5 b 2021-10-22 5 c 2021-10-22 5 d </code></pre>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>如果要更改数据帧最后一行中特定列的值,可以尝试以下代码</p> <pre><code>df.iloc[-1,0] = 5 </code></pre> <p>-1->;数据帧的最后一行</p> <p>0->;“值”列的索引</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
Python猜字gam
10 回答
Python猜字游戏
4 回答
Python猜字游戏?
4 回答
Python猜字游戏不会在玩家猜测所有字母时结束
8 回答
Python猜字游戏在有重复字符的单词上失败
5 回答
Python猜想
1 回答
Python猜数字游戏,而循环没有响应
1 回答
python猜测gam的代码反馈
9 回答
python猜测gam的变量问题
10 回答
python猜测具体路径?
5 回答
Python猜测我的号码(反向号码猜测)UnboundLocalE
7 回答
python猜测该数字在猜测过度后再试一次
7 回答
Python猜猜单词游戏bug
8 回答
Python猜猜游戏如何再现
6 回答
Python猜猜游戏服务器
6 回答
Python猜猜谁的游戏我没有得到我预期的输出
9 回答
Python猜谜游戏
6 回答
Python猜谜游戏,值错误:randrange()的空范围
7 回答
Python猜谜游戏,带尝试选项
2 回答
Python猜谜游戏,我的赢的条件打印赢和输
1 回答