繁体   English   中英

将值设置为Pandas数据框的切片

[英]Set value to slice of a Pandas dataframe

我想根据某个值对数据框的子集进行排序(例如,在索引i和j之间)。 我试过了

df2=df.iloc[i:j].sort_values(by=...)
df.iloc[i:j]=df2

第一行没有问题,但是运行第二行没有任何反应(甚至没有错误)。 我应该怎么做 ? (我也尝试了更新功能,但没有执行任何操作)。

我相信需要分配给过滤后的DataFrame并通过将values转换为numpy数组来避免对齐索引:

df = pd.DataFrame({'A': [1,2,3,4,3,2,1,4,1,2]})
print (df)
   A
0  1
1  2
2  3
3  4
4  3
5  2
6  1
7  4
8  1
9  2

i = 2
j = 7
df.iloc[i:j] = df.iloc[i:j].sort_values(by='A').values
print (df)
   A
0  1
1  2
2  1
3  2
4  3
5  3
6  4
7  4
8  1
9  2

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM