📜  Python|熊猫 dataframe.reindex()(1)

📅  最后修改于: 2023-12-03 14:46:30.155000             🧑  作者: Mango

Python | 熊猫 dataframe.reindex()

简介

Pandas 是一个强大灵活的 Python 数据分析库,它提供了两种重要的数据类型,Series 和DataFrame。其中 DataFrame 是表格型数据结构,它由行和列构成,可以看做是 Excel 或 SQL 表的 Python 实现版本。reindex() 是 Pandas DataFrame 中的一个重要方法,可以将 DataFrame 重新索引,返回新的 DataFrame。

语法

DataFrame.reindex(index=None, columns=None, fill_value=None, axis=None, method=None, copy=True, level=None, limit=None, tolerance=None)

参数:

  • index:新的索引,可选参数,默认是 None,如果设置了新的索引,则原有索引会被替换。
  • columns:新的列名,可选参数,默认是 None,如果设置了新的列名,则原有的列名会被替换
  • fill_value:可选采用缺省值,默认NaN
  • axis:设定要改变的是行索引还是列索引,0:行,1:列
  • method:当通过 reindex 添加新索引时使用的填充方法
  • copy:默认为 True,返回新的DataFrame
  • level:在MultiIndex的指定级别上匹配简单索引,否则选择其子集。
  • limit:至多检查的最大尺寸差异性的绝对大小。
  • tolerance:接受索引结果的“近似”匹配,但不接受完全等于。
返回值

返回原DataFrame重新索引后的新DataFrame

示例
import pandas as pd
  
# 定义原数据(DataFrame)
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]}, index=['a', 'b', 'c'])

# reindex
df_reindex = df.reindex(index=['a', 'd', 'b', 'c'], columns=['A', 'B', 'D'])

# 输出结果
print("===原来的 DataFrame===")
print(df)
print("\n===Reindex 后的 DataFrame===")
print(df_reindex)

输出结果:

===原来的 DataFrame===
   A  B  C
a  1  4  7
b  2  5  8
c  3  6  9

===Reindex 后的 DataFrame===
     A    B   D
a  1.0  4.0 NaN
d  NaN  NaN NaN
b  2.0  5.0 NaN
c  3.0  6.0 NaN

从上面的代码中可以看出,我们首先定义了一个 DataFrame df,然后使用 reindex() 方法重新索引列和行。在返回的 DataFrame 中,我们可以发现原始的索引和列名已被重新设置。 如果值不存在,那么这个值将被设置为 NaN(在上面的示例中,D列的值全部为 NaN)。