簡體   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