[英]Pandas DataFrame: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame
[英]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.