首页 > 其他分享 >如何查看 Series、DataFrame 对象的数据

如何查看 Series、DataFrame 对象的数据

时间:2022-11-09 21:33:22浏览次数:32  
标签:index 07 查看 Series DataFrame 2021 pd print

1. 查看一部分数据

我们可以使用 head() 和 tail() 方法来查看 Series 对象或 DataFrame 对象的一小部分数据,默认查看的元素个数为 5 个,head() 展示头部的 5 个元素,tail() 展示尾部的 5 个元素,也可以自定义展示的元素个数。当 Series 对象或 DataFrame 对象包含的数据较多时,使用 head() 或 tail() 查看数据的结构会非常方便。

1.1 Series 对象

import numpy as np
import pandas as pd

my_series = pd.Series(np.array([4, -7, 6, -5, 3, 2, np.NaN, 8, 1, -9]))

print(my_series.head())

由于没有明确指定展示的元素个数,上面的代码默认输出了 Series 对象头部的 5 个元素。

import numpy as np
import pandas as pd

my_series = pd.Series(np.array([4, -7, 6, -5, 3, 2, np.NaN, 8, 1, -9]))

print(my_series.head(3))

由于指定了展示的元素个数为 3,所以上面的代码输出了 Series 对象头部的 3 个元素。

import numpy as np
import pandas as pd

my_series = pd.Series(np.array([4, -7, 6, -5, 3, 2, np.NaN, 8, 1, -9]))

print(my_series.tail())

由于没有明确指定展示的元素个数,上面的代码默认输出了 Series 对象尾部的 5 个元素。

import numpy as np
import pandas as pd

my_series = pd.Series(np.array([4, -7, 6, -5, 3, 2, np.NaN, 8, 1, -9]))

print(my_series.tail(3))

由于指定了展示的元素个数为 3,所以上面的代码输出了 Series 对象尾部的 3 个元素。

1.2 DataFrame 对象

import pandas as pd

d = {
"Open": pd.Series([136, 137, 140, 143, 141, 142, 146], index=['2021-07-01', '2021-07-02', '2021-07-06', '2021-07-07', '2021-07-08', '2021-07-09', '2021-07-12']),
"High": pd.Series([137, 140, 143, 144, 144, 145, 146], index=['2021-07-01', '2021-07-02', '2021-07-06', '2021-07-07', '2021-07-08', '2021-07-09', '2021-07-12']),
"Low": pd.Series([135, 137, 140, 142, 140, 142, 144], index=['2021-07-01', '2021-07-02', '2021-07-06', '2021-07-07', '2021-07-08', '2021-07-09', '2021-07-12']),
"Close": pd.Series([137, 139, 142, 144, 143, 145, 144], index = ['2021-07-01', '2021-07-02', '2021-07-06', '2021-07-07', '2021-07-08', '2021-07-09', '2021-07-12'])
}

df = pd.DataFrame(d)
print(df.head())

由于没有明确指定展示的行数,上面的代码默认输出了 DataFrame 对象头部的 5 行元素。

import pandas as pd

d = {
"Open": pd.Series([136, 137, 140, 143, 141, 142, 146], index=['2021-07-01', '2021-07-02', '2021-07-06', '2021-07-07', '2021-07-08', '2021-07-09', '2021-07-12']),
"High": pd.Series([137, 140, 143, 144, 144, 145, 146], index=['2021-07-01', '2021-07-02', '2021-07-06', '2021-07-07', '2021-07-08', '2021-07-09', '2021-07-12']),
"Low": pd.Series([135, 137, 140, 142, 140, 142, 144], index=['2021-07-01', '2021-07-02', '2021-07-06', '2021-07-07', '2021-07-08', '2021-07-09', '2021-07-12']),
"Close": pd.Series([137, 139, 142, 144, 143, 145, 144], index = ['2021-07-01', '2021-07-02', '2021-07-06', '2021-07-07', '2021-07-08', '2021-07-09', '2021-07-12'])
}

df = pd.DataFrame(d)
print(df.head(3))

由于指定了展示的行数为 3,所以上面的代码输出了 DataFrame 对象头部的 3 行元素。

import pandas as pd

d = {
"Open": pd.Series([136, 137, 140, 143, 141, 142, 146], index=['2021-07-01', '2021-07-02', '2021-07-06', '2021-07-07', '2021-07-08', '2021-07-09', '2021-07-12']),
"High": pd.Series([137, 140, 143, 144, 144, 145, 146], index=['2021-07-01', '2021-07-02', '2021-07-06', '2021-07-07', '2021-07-08', '2021-07-09', '2021-07-12']),
"Low": pd.Series([135, 137, 140, 142, 140, 142, 144], index=['2021-07-01', '2021-07-02', '2021-07-06', '2021-07-07', '2021-07-08', '2021-07-09', '2021-07-12']),
"Close": pd.Series([137, 139, 142, 144, 143, 145, 144], index = ['2021-07-01', '2021-07-02', '2021-07-06', '2021-07-07', '2021-07-08', '2021-07-09', '2021-07-12'])
}

df = pd.DataFrame(d)
print(df.tail())

由于没有明确指定展示的行数,上面的代码默认输出了 DataFrame 对象尾部的 5 行元素。

import pandas as pd

d = {
"Open": pd.Series([136, 137, 140, 143, 141, 142, 146], index=['2021-07-01', '2021-07-02', '2021-07-06', '2021-07-07', '2021-07-08', '2021-07-09', '2021-07-12']),
"High": pd.Series([137, 140, 143, 144, 144, 145, 146], index=['2021-07-01', '2021-07-02', '2021-07-06', '2021-07-07', '2021-07-08', '2021-07-09', '2021-07-12']),
"Low": pd.Series([135, 137, 140, 142, 140, 142, 144], index=['2021-07-01', '2021-07-02', '2021-07-06', '2021-07-07', '2021-07-08', '2021-07-09', '2021-07-12']),
"Close": pd.Series([137, 139, 142, 144, 143, 145, 144], index = ['2021-07-01', '2021-07-02', '2021-07-06', '2021-07-07', '2021-07-08', '2021-07-09', '2021-07-12'])
}

df = pd.DataFrame(d)
print(df.tail(3))

由于指定了展示的行数为 3,所以上面的代码输出了 DataFrame 对象尾部的 3 行元素。

2. 查看属性及数据

2.1 属性

import numpy as np
import pandas as pd

my_series = pd.Series(np.array([4, -7, 6, -5, 3, 2, np.NaN, 8, 1, -9]))

print(my_series.index)
print(my_series.shape)

上述代码查看了 Series 对象 my_series 的索引和形状。

import pandas as pd

d = {
"Open": pd.Series([136, 137, 140, 143, 141, 142, 146], index=['2021-07-01', '2021-07-02', '2021-07-06', '2021-07-07', '2021-07-08', '2021-07-09', '2021-07-12']),
"High": pd.Series([137, 140, 143, 144, 144, 145, 146], index=['2021-07-01', '2021-07-02', '2021-07-06', '2021-07-07', '2021-07-08', '2021-07-09', '2021-07-12']),
"Low": pd.Series([135, 137, 140, 142, 140, 142, 144], index=['2021-07-01', '2021-07-02', '2021-07-06', '2021-07-07', '2021-07-08', '2021-07-09', '2021-07-12']),
"Close": pd.Series([137, 139, 142, 144, 143, 145, 144], index = ['2021-07-01', '2021-07-02', '2021-07-06', '2021-07-07', '2021-07-08', '2021-07-09', '2021-07-12'])
}

df = pd.DataFrame(d)

print(df.index)
print(df.columns)
print(df.shape)

上述代码查看了 DataFrame 对象 df 的行、列索引以及形状。

2.2 数据

在过去,pandas 建议使用 ​​Series.values​​ 或 ​​DataFrame.values​​ 从 Series 对象 或 DataFrame 对象中提取数据。现在,建议避免使用 ​​.values​​ 而改用 ​​.to_numpy()​​,因为 ​​.values​​ 有一些缺陷。

2.2.1 Series 对象

import numpy as np
import pandas as pd

my_series = pd.Series(np.array([4, -7, 6, -5, 3, 2, np.NaN, 8, 1, -9]))

print(my_series.to_numpy())
print(type(my_series.to_numpy()))

上述代码获取了 Series 对象的数据,类型为 ndarray。

2.2.2 DataFrame 对象

import pandas as pd

d = {
"Open": pd.Series([136, 137, 140, 143, 141, 142, 146], index=['2021-07-01', '2021-07-02', '2021-07-06', '2021-07-07', '2021-07-08', '2021-07-09', '2021-07-12']),
"High": pd.Series([137, 140, 143, 144, 144, 145, 146], index=['2021-07-01', '2021-07-02', '2021-07-06', '2021-07-07', '2021-07-08', '2021-07-09', '2021-07-12']),
"Low": pd.Series([135, 137, 140, 142, 140, 142, 144], index=['2021-07-01', '2021-07-02', '2021-07-06', '2021-07-07', '2021-07-08', '2021-07-09', '2021-07-12']),
"Close": pd.Series([137, 139, 142, 144, 143, 145, 144], index = ['2021-07-01', '2021-07-02', '2021-07-06', '2021-07-07', '2021-07-08', '2021-07-09', '2021-07-12'])
}

df = pd.DataFrame(d)

print(df.to_numpy())
print(type(df.to_numpy()))

上述代码获取了 DataFrame 对象的数据,类型为 ndarray。

3. 查看统计信息

对于 Series、DataFrame 对象来说,pandas 有许多方法用来计算它们的描述统计。这其中的大多数为聚合类方法,例如:sum()、mean()、cumsum()、cumprod() 等。对于 Series 对象来说,这些方法不需要指定 ​​axis​​ 参数,对于 DataFrame 对象来说,这些方法需要指定 ​​axis​​ 参数,​​axis​​ 参数的值可以是名字或者数字。当参数的值为 ​​index​​ 或 0 时,表示按列进行计算;当参数的值为 ​​columns​​ 或 1 时,表示按行进行计算。

3.1 Series 对象

import numpy as np
import pandas as pd

my_series = pd.Series(np.array([4, -7, 6, -5, 3, 2, np.NaN, 8, 1, -9]))

print(my_series.sum())
print(my_series.mean())
print(my_series.cumsum())
print(my_series.cumprod())

sum() 函数计算的是所有元素的和(除去 np.NaN)。mean() 函数计算的是所有元素的平均值(除去 np.NaN)。cumsum() 函数计算的是所有元素的累计和(除去 np.NaN)。cumprod() 函数计算的是所有元素的累计积(除去 np.NaN)。当上述函数什么参数都不设置时,在进行计算时,默认是忽略 np.NaN 值的。如果不想忽略 np.NaN 的值,可以设置 skipna 参数。例如:

import numpy as np
import pandas as pd

my_series = pd.Series(np.array([4, -7, 6, -5, 3, 2, np.NaN, 8, 1, -9]))

print(my_series.sum(skipna=False))
print(my_series.mean(skipna=False))
print(my_series.cumsum(skipna=False))
print(my_series.cumprod(skipna=False))

上述代码在计算时,便没有忽略 np.NaN。

3.2 DataFrame 对象

import numpy as np
import pandas as pd

d = {
"Open": pd.Series([136, 137, 140, 143, 141, 142, 146], index=['2021-07-01', '2021-07-02', '2021-07-06', '2021-07-07', '2021-07-08', '2021-07-09', '2021-07-12']),
"High": pd.Series([137, 140, 143, 144, 144, 145, 146], index=['2021-07-01', '2021-07-02', '2021-07-06', '2021-07-07', '2021-07-08', '2021-07-09', '2021-07-12']),
"Low": pd.Series([135, 137, 140, 142, np.NaN, 142, 144], index=['2021-07-01', '2021-07-02', '2021-07-06', '2021-07-07', '2021-07-08', '2021-07-09', '2021-07-12']),
"Close": pd.Series([137, 139, np.NaN, 144, 143, 145, 144], index = ['2021-07-01', '2021-07-02', '2021-07-06', '2021-07-07', '2021-07-08', '2021-07-09', '2021-07-12'])
}

df = pd.DataFrame(d)

# 按列进行计算,忽略 np.NaN
print(df.sum(axis=0))
print(df.sum(axis='index'))

print(df.mean(axis=0))
print(df.mean(axis='index'))

print(df.cumsum(axis=0))
print(df.cumsum(axis='index'))

print(df.cumprod(axis=0))
print(df.cumprod(axis='index'))

# 按行进行计算,忽略 np.NaN
print(df.sum(axis=1))
print(df.sum(axis='columns'))

print(df.mean(axis=1))
print(df.mean(axis='columns'))

print(df.cumsum(axis=1))
print(df.cumsum(axis='columns'))

print(df.cumprod(axis=1))
print(df.cumprod(axis='columns'))

上述代码分别按行和列进行了 sum()、mean()、cumsum() 和 cumprod() 运算。在进行计算时,忽略了 np.NaN。如果不想忽略 np.NaN 的值,可以设置 skipna 参数。例如:

import numpy as np
import pandas as pd

d = {
"Open": pd.Series([136, 137, 140, 143, 141, 142, 146], index=['2021-07-01', '2021-07-02', '2021-07-06', '2021-07-07', '2021-07-08', '2021-07-09', '2021-07-12']),
"High": pd.Series([137, 140, 143, 144, 144, 145, 146], index=['2021-07-01', '2021-07-02', '2021-07-06', '2021-07-07', '2021-07-08', '2021-07-09', '2021-07-12']),
"Low": pd.Series([135, 137, 140, 142, np.NaN, 142, 144], index=['2021-07-01', '2021-07-02', '2021-07-06', '2021-07-07', '2021-07-08', '2021-07-09', '2021-07-12']),
"Close": pd.Series([137, 139, np.NaN, 144, 143, 145, 144], index = ['2021-07-01', '2021-07-02', '2021-07-06', '2021-07-07', '2021-07-08', '2021-07-09', '2021-07-12'])
}

df = pd.DataFrame(d)

# 按列进行计算,忽略 np.NaN
print(df.sum(axis=0, skipna=False))
print(df.sum(axis='index', skipna=False))

print(df.mean(axis=0, skipna=False))
print(df.mean(axis='index', skipna=False))

print(df.cumsum(axis=0, skipna=False))
print(df.cumsum(axis='index', skipna=False))

print(df.cumprod(axis=0, skipna=False))
print(df.cumprod(axis='index', skipna=False))

# 按行进行计算,忽略 np.NaN
print(df.sum(axis=1, skipna=False))
print(df.sum(axis='columns', skipna=False))

print(df.mean(axis=1, skipna=False))
print(df.mean(axis='columns', skipna=False))

print(df.cumsum(axis=1, skipna=False))
print(df.cumsum(axis='columns', skipna=False))

print(df.cumprod(axis=1, skipna=False))
print(df.cumprod(axis='columns', skipna=False))

除了上面的函数外,还有一些函数,见下表:

如何查看 Series、DataFrame 对象的数据_数据

4. describe() 函数

pandas 还有一个方便的函数 describe(),可以一次产生多个汇总统计,在进行计算时,排除了 np.NaN。例如:

import numpy as np
import pandas as pd

my_series = pd.Series(np.array([4, -7, 6, -5, 3, 2, np.NaN, 8, 1, -9]))

print(my_series.describe())

上面代码的输出结果中,count 表示元素的个数;mean 表示元素的平均值;std 表示元素的标准差;min 表示元素的最小值;25% 表示元素的第一四分位数;50% 表示元素的第二四分位数;75% 表示元素的第三四分位数;max 表示元素的最大值。当把 describe() 函数用于 DataFrame 对象时,是对每一列进行汇总统计。例如:

import numpy as np
import pandas as pd

d = {
"Open": pd.Series([136, 137, 140, 143, 141, 142, 146], index=['2021-07-01', '2021-07-02', '2021-07-06', '2021-07-07', '2021-07-08', '2021-07-09', '2021-07-12']),
"High": pd.Series([137, 140, 143, 144, 144, 145, 146], index=['2021-07-01', '2021-07-02', '2021-07-06', '2021-07-07', '2021-07-08', '2021-07-09', '2021-07-12']),
"Low": pd.Series([135, 137, 140, 142, np.NaN, 142, 144], index=['2021-07-01', '2021-07-02', '2021-07-06', '2021-07-07', '2021-07-08', '2021-07-09', '2021-07-12']),
"Close": pd.Series([137, 139, np.NaN, 144, 143, 145, 144], index = ['2021-07-01', '2021-07-02', '2021-07-06', '2021-07-07', '2021-07-08', '2021-07-09', '2021-07-12'])
}

df = pd.DataFrame(d)

print(df.describe())

上述代码输出了 DataFrame 对象每列的统计信息。当 describe() 没有参数设置时,默认输出了第一四分位数、第二四分位数、第三四分位数。我们还可以通过设置参数 percentiles,来指定输出哪些百分位数。例如:

import numpy as np
import pandas as pd

d = {
"Open": pd.Series([136, 137, 140, 143, 141, 142, 146], index=['2021-07-01', '2021-07-02', '2021-07-06', '2021-07-07', '2021-07-08', '2021-07-09', '2021-07-12']),
"High": pd.Series([137, 140, 143, 144, 144, 145, 146], index=['2021-07-01', '2021-07-02', '2021-07-06', '2021-07-07', '2021-07-08', '2021-07-09', '2021-07-12']),
"Low": pd.Series([135, 137, 140, 142, np.NaN, 142, 144], index=['2021-07-01', '2021-07-02', '2021-07-06', '2021-07-07', '2021-07-08', '2021-07-09', '2021-07-12']),
"Close": pd.Series([137, 139, np.NaN, 144, 143, 145, 144], index = ['2021-07-01', '2021-07-02', '2021-07-06', '2021-07-07', '2021-07-08', '2021-07-09', '2021-07-12'])
}

df = pd.DataFrame(d)

print(df.describe(percentiles=[0.05, 0.25, 0.75, 0.95]))

在 percentiles 里没有指定 0.5,因为中位数是默认包含的。上面 Series 对象中元素的类型为数字,当元素的类型为非数字时,describe() 函数会给出每个元素的次数以及所有元素中的最高次数。例如:

import numpy as np
import pandas as pd

s = pd.Series(["a", "a", "b", "b", "a", "a", np.NaN, "c", "d", "a"])

print(s.describe())

上述代码的输出结果中,count 表示元素的个数;unique 表示不同元素的个数;top 表示出现次数最高的元素;freq 表示出现次数最高的元素的次数。当 DataFrame 对象中既有数字的列也有非数字的列,在不设置参数的情况下,describe() 会只对数字的列进行统计计算,例如:

import numpy as np
import pandas as pd

frame = pd.DataFrame({"a": ["Yes", "Yes", "No", "No"], "b": range(4)})

print(frame.describe())

上面代码的输出结果只对 b 列进行了统计计算。当然,对哪些类型的列进行计算,我们也可以用参数进行控制。例如:

import numpy as np
import pandas as pd

frame = pd.DataFrame({"a": ["Yes", "Yes", "No", "No"], "b": range(4)})

print(frame.describe(include=['object']))

当 include 参数的值为 object 时,只计算非数字列的统计信息。

import numpy as np
import pandas as pd

frame = pd.DataFrame({"a": ["Yes", "Yes", "No", "No"], "b": range(4)})

print(frame.describe(include=['number']))

当 include 参数的值为 number 时,只计算数字列的统计信息。

import numpy as np
import pandas as pd

frame = pd.DataFrame({"a": ["Yes", "Yes", "No", "No"], "b": range(4)})

print(frame.describe(include='all'))

当 include 参数的值为 all 时,计算所有列的统计信息,数字列按照数字列的规则,非数字列按照非数字列的规则。

5. 排序

5.1 按索引排序

根据条件对数据集排序是很常见的一种操作,要对行或列索引进行排序(按字典顺序),可使用 sort_index 方法,它将返回一个已排序的新对象,例如:

import numpy as np
import pandas as pd

my_series = pd.Series(np.array([4, -7, 6, -5, 3, 2]), index=["b", "e", "c", "d", "a", "f"])

# 排序前
print(my_series)

# 排序后
print(my_series.sort_index())

上面代码中,调用 ​​sort_index()​​ 之后,索引按照字典序进行了升序排序。我们也可以按照降序进行排序,只需要传入参数 ​​ascending=False​​,例如:

import numpy as np
import pandas as pd

my_series = pd.Series(np.array([4, -7, 6, -5, 3, 2]), index=["b", "e", "c", "d", "a", "f"])

# 排序前
print(my_series)

# 排序后
print(my_series.sort_index(ascending=False))

对于 DataFrame 对象来说,可以根据任意一个轴上的索引进行排序,例如:

import numpy as np
import pandas as pd

d = {
"Open": pd.Series([136, 137, 140, 143, 141, 142, 146], index=['2021-07-01', '2021-07-06', '2021-07-02', '2021-07-07', '2021-07-08', '2021-07-09', '2021-07-12']),
"High": pd.Series([137, 140, 143, 144, 144, 145, 146], index=['2021-07-01', '2021-07-06', '2021-07-02', '2021-07-07', '2021-07-08', '2021-07-09', '2021-07-12']),
"Low": pd.Series([135, 137, 140, 142, np.NaN, 142, 144], index=['2021-07-01', '2021-07-06', '2021-07-02', '2021-07-07', '2021-07-08', '2021-07-09', '2021-07-12']),
"Close": pd.Series([137, 139, np.NaN, 144, 143, 145, 144], index = ['2021-07-01', '2021-07-06', '2021-07-02', '2021-07-07', '2021-07-08', '2021-07-09', '2021-07-12'])
}

df = pd.DataFrame(d)

# 排序前
print(df)

# 排序后
print(df.sort_index())

上面代码中,对 DataFrame 对象按照行索引进行了升序排序。当不传入参数时,默认按照行索引进行升序排序,我们也可以通过指定参数来按照列索引进行排序。例如:

import numpy as np
import pandas as pd

d = {
"Open": pd.Series([136, 137, 140, 143, 141, 142, 146], index=['2021-07-01', '2021-07-06', '2021-07-02', '2021-07-07', '2021-07-08', '2021-07-09', '2021-07-12']),
"High": pd.Series([137, 140, 143, 144, 144, 145, 146], index=['2021-07-01', '2021-07-06', '2021-07-02', '2021-07-07', '2021-07-08', '2021-07-09', '2021-07-12']),
"Low": pd.Series([135, 137, 140, 142, np.NaN, 142, 144], index=['2021-07-01', '2021-07-06', '2021-07-02', '2021-07-07', '2021-07-08', '2021-07-09', '2021-07-12']),
"Close": pd.Series([137, 139, np.NaN, 144, 143, 145, 144], index = ['2021-07-01', '2021-07-06', '2021-07-02', '2021-07-07', '2021-07-08', '2021-07-09', '2021-07-12'])
}

df = pd.DataFrame(d)

# 排序前
print(df)

# 排序后
print(df.sort_index(axis=1))

上面代码中,按照列索引进行了升序排序。上面都是按照升序进行排序,和 Series 对象一样,我们可以通过指定参数,使得按照降序进行排序。例如:

import numpy as np
import pandas as pd

d = {
"Open": pd.Series([136, 137, 140, 143, 141, 142, 146], index=['2021-07-01', '2021-07-06', '2021-07-02', '2021-07-07', '2021-07-08', '2021-07-09', '2021-07-12']),
"High": pd.Series([137, 140, 143, 144, 144, 145, 146], index=['2021-07-01', '2021-07-06', '2021-07-02', '2021-07-07', '2021-07-08', '2021-07-09', '2021-07-12']),
"Low": pd.Series([135, 137, 140, 142, np.NaN, 142, 144], index=['2021-07-01', '2021-07-06', '2021-07-02', '2021-07-07', '2021-07-08', '2021-07-09', '2021-07-12']),
"Close": pd.Series([137, 139, np.NaN, 144, 143, 145, 144], index = ['2021-07-01', '2021-07-06', '2021-07-02', '2021-07-07', '2021-07-08', '2021-07-09', '2021-07-12'])
}

df = pd.DataFrame(d)

# 排序前
print(df)

# 排序后
# 按列索引进行降序排序
print(df.sort_index(axis=1, ascending=False))

# 按行索引进行降序排序
print(df.sort_index(ascending=False))

5.2 按值进行排序

上面是按索引进行排序,如果要按值进行排序,可以使用 sort_values 方法。例如:

import numpy as np
import pandas as pd

my_series = pd.Series(np.array([4, -7, 6, np.NaN, 3, 2]), index=["b", "e", "c", "d", "a", "f"])

# 排序前
print(my_series)

# 排序后
print(my_series.sort_values())

上面的代码按照值进行了升序排序,在排序时,任何缺失值默认都会被放到末尾。同样地,我们可以通过指定排序的顺序,使得值按照降序进行排序,例如:

import numpy as np
import pandas as pd

my_series = pd.Series(np.array([4, -7, 6, np.NaN, 3, 2]), index=["b", "e", "c", "d", "a", "f"])

# 排序前
print(my_series)

# 排序后
print(my_series.sort_values(ascending=False))

上面的代码按照值进行了降序排序。

当对一个 DataFrame 对象进行排序时,你可能希望根据一个或多个列中的值进行排序。将一个或多个列的名字传递给 sort_values 的 by 选项即可达到该目的。例如:

import numpy as np
import pandas as pd

d = {
"Open": pd.Series([136, 137, 140, 143, 141, 142, 146], index=['2021-07-01', '2021-07-06', '2021-07-02', '2021-07-07', '2021-07-08', '2021-07-09', '2021-07-12']),
"High": pd.Series([137, 140, 143, 144, 144, 145, 146], index=['2021-07-01', '2021-07-06', '2021-07-02', '2021-07-07', '2021-07-08', '2021-07-09', '2021-07-12']),
"Low": pd.Series([135, 137, 140, 142, 140, 142, 144], index=['2021-07-01', '2021-07-06', '2021-07-02', '2021-07-07', '2021-07-08', '2021-07-09', '2021-07-12']),
"Close": pd.Series([137, 139, np.NaN, 144, 143, 145, 144], index = ['2021-07-01', '2021-07-06', '2021-07-02', '2021-07-07', '2021-07-08', '2021-07-09', '2021-07-12'])
}

df = pd.DataFrame(d)

# 排序前
print(df)

# 按open列的值进行排序
print(df.sort_values(by=['Open']))

# 按open列和High列进行排序
print(df.sort_values(by=['High', 'Low']))

标签:index,07,查看,Series,DataFrame,2021,pd,print
From: https://blog.51cto.com/u_15641375/5838754

相关文章

  • Linux查看大文件日志
    Linux查看大日志文件1、使用less命令 lessfilename但是使用上述命令的坏处是,默认打开的位置在第一行,并且当切换到实时滚动模式(按 F ,实现效果类似tail-f效......
  • Pandas的介绍及 Series、 DataFrame的创建
    1.Pandas是什么?Pandas是一个强大的分析结构化数据的工具集;它的使用基础是Numpy(提供高性能的矩阵运算);用于数据挖掘和数据分析,同时也提供数据清洗功能。Pandas的主要数据......
  • 查看某个端口是否被占用
    查看某个端口是否被占用1、运行→cmd→netstat-aon|findstr"80"2、查到占用端口的号码3、Ctrl+Alt+Delete→查看→选择列→PID看看是什么程序占用端口,视情况处......
  • vue+element ui <el-table>中有多页数据,查看完详情,回到查看前的页码
    我们的查看里面有添加部分数据的功能,添加成功后,页面返回关闭,页面需要重新调取接口获取新的数据,但是客户的需求是,关闭后,还应回到当前页,而不是回到第一页。思路:将当前页面的接......
  • 分享一个重启、查看jar包状态的sh脚本
    很多时候我们部署jar包到服务器上的时候,都需要准备一个重启、查看jar包状态的sh脚本,本文分享一个。拿去即可用,把它放到和jar包同一个目录里即可,可以给它取个名字叫app.sh......
  • 查看DLL是32还是64位
    首先,我们在开始菜单的应用列表中找到VisualStudio的文件夹,打开其中的VS开发人员命令提示符。通过VS命令提示符中的CorFlags命令可以查看.NET版的dll的位数,查询命令是:corf......
  • 用Java方法创建、查看文件目录
    一、创建、查看文件  首先插入包java.io.*,然后创建File对象。   有三种方法创建文件,不过都是将创建文件的绝对路径用String类型数据保存,在创建File对象时引用St......
  • 房产信息管理系统-查看个人信息
    查看个人信息:房产经纪或者顾客登录后,可以查看个人的详细信息。(2分)这个主要就是查的sql语句关键是如何查询当前登录的用户或房产经纪人的个人信息,这就要用到登录时埋下的......
  • android--查看keystore文件签名信息
    Java\jdk1.6.0_14\bin\keytool-list-v-keystore keystoreName输入密码就可以了。C:\tmp\0>keytool密钥和证书管理工具命令: -certreq      生......
  • 安卓12 查看gpio
    安卓12 查看gpiocat/sys/devices/platform/pinctrl@1000b000/mt_gpiochmod 777 mt_gpioecho "out 154 0" > mt_gpio cd/sys/class/leds/ 查看电池状况......