📅  最后修改于: 2023-12-03 14:45:02.372000             🧑  作者: Mango
Pandas 是一款强大的数据分析工具,其中 DataFrame 是 Pandas 中最常用的数据类型之一。在 DataFrame 中,重新索引(reindexing)是常用的操作之一,它可以帮助我们改变 DataFrame 的行和列的顺序,增加或删除某些行或列,以及按照某个特定顺序排序。
DataFrame.reindex(index=None, columns=None, **kwargs)
index : array-like, optional 重新索引行,可以是索引、数组、列表、序列或者 Dataframe。
columns : array-like, optional 重新索引列,可以是索引、数组、列表、序列或者 Dataframe。
kwargs : dict, optional 用于传递给底层 pandas 方法的其他关键字参数。
import pandas as pd
# 创建一个 DataFrame
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]})
# 显示 DataFrame
print("原始 DataFrame:\n", df)
# 重新索引行
df = df.reindex([2, 1, 0])
print("按照行索引排序后的 DataFrame:\n", df)
# 重新索引列
df = df.reindex(columns=['B', 'A', 'C'])
print("按照列索引排序后的 DataFrame:\n", df)
# 添加新的行和列
df = df.reindex(index=[2, 1, 0, 3], columns=['B', 'A', 'C', 'D'])
print("添加新的行和列后的 DataFrame:\n", df)
# 删除行和列
df = df.drop(columns=['D'], index=[3])
print("删除行和列后的 DataFrame:\n", df)
运行结果:
原始 DataFrame:
A B C
0 1 4 7
1 2 5 8
2 3 6 9
按照行索引排序后的 DataFrame:
A B C
2 3 6 9
1 2 5 8
0 1 4 7
按照列索引排序后的 DataFrame:
B A C
2 6 3 9
1 5 2 8
0 4 1 7
添加新的行和列后的 DataFrame:
B A C D
2 6 3 9 NaN
1 5 2 8 NaN
0 4 1 7 NaN
3 NaN NaN NaN NaN
删除行和列后的 DataFrame:
B A C
2 6 3 9
1 5 2 8
0 4 1 7
通过重新索引,我们可以轻松地改变 DataFrame 的行列顺序,增加或删除特定的行列,以及按照行列索引对 DataFrame 进行排序。这使得 Pandas 更加方便实用,使得数据分析变得更加高效。