这里举个例子。df1将保存排序的数据框,df并将保持不变
import pandas as pd
from datetime import datetime as dt
df = pd.DataFrame(data=[22,22,3],
index=[dt(2016, 11, 10, 0), dt(2016, 11, 10, 13), dt(2016, 11, 13, 5)],
columns=['foo'])
df1 = df.sort_values(by='foo')
print(df, df1)
Run Code Online (Sandbox Code Playgroud)
在以下情况下,df将保留排序后的值
import pandas as pd
from datetime import datetime as dt
df = pd.DataFrame(data=[22,22,3],
index=[dt(2016, 11, 10, 0), dt(2016, 11, 10, 13), dt(2016, 11, 13, 5)],
columns=['foo'])
df.sort_values(by='foo', inplace=True)
print(df)
Run Code Online (Sandbox Code Playgroud)
从sort_values 文档中可以看出,该函数的返回值是一个系列。但是,它是一个新系列而不是原始系列。
例如:
import numpy as np
import pandas as pd
s = pd.Series(np.random.randn(5), index=['a', 'b', 'c', 'd', 'e'])
print(s)
a -0.872271
b 0.294317
c -0.017433
d -1.375316
e 0.993197
dtype: float64
s_sorted = s.sort_values()
print(s_sorted)
d -1.375316
a -0.872271
c -0.017433
b 0.294317
e 0.993197
dtype: float64
print(id(s_sorted))
127952880
print(id(s))
127724792
Run Code Online (Sandbox Code Playgroud)
所以s和s_sorted是不同的系列。但是如果你使用 inplace=True。
s.sort_values(inplace=True)
print(s)
d -1.375316
a -0.872271
c -0.017433
b 0.294317
e 0.993197
dtype: float64
print(id(s))
127724792
Run Code Online (Sandbox Code Playgroud)
它表明它们是同一个系列,并且不会返回新系列。
| 归档时间: |
|
| 查看次数: |
9819 次 |
| 最近记录: |