[英]Pandas reversing the orders of the rows
您好,我正在使用一個非常大的 csv 數據框和 pandas 我將如何反轉其中的列表? 下面的代碼在運行時分配row:0 = 15710.01
和row:1862 = 243.95
我想反轉代碼,以便row:1862 = 15710.01
和row:0 = 243.95
。 代碼:
import pandas as pd
data =pd.read_csv('input.csv')
PC_close =data['Close']
PC_close
當前代碼的Output
0 15710.01
1 15710.87
2 15318.00
3 15348.20
4 15484.55
...
1858 247.60
1859 249.50
1860 246.30
1861 245.39
1862 243.95
Name: Close, Length: 1863, dtype: float64
如果要在不反轉索引的情況下反轉值,可以使用
df[::-1].set_index(df.index)
最小重復
df = pd.DataFrame({'a': [1, 2, 3], 'b': [4, 5, 6]})
print (df)
a b
0 1 4
1 2 5
2 3 6
df2 = df[::-1].set_index(df.index)
print (df2)
a b
0 3 6
1 2 5
2 1 4
如果您有很多行,另一種效果很好的方法是就地重新分配。 這通常更快,但涉及直接使用 numpy (NumPandas)。
df[:] = df[::-1].to_numpy() # modifies the original frame
# or
# df[:] = df.to_numpy()[::-1] # slightly faster
print (df)
a b
0 3 6
1 2 5
2 1 4
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.