dataframe.reindex()


Pandas dataframe.reindex()函数使用可选的填充逻辑使DataFrame符合新索引,将NA /NaN放置在先前索引中没有值的位置。除非新索引等于当前索引并且copy = False,否则将生成一个新对象。

用法: DataFrame.reindex(labels=None, index=None, columns=None, axis=None, method=None, copy=True, level=None, fill_value=nan, limit=None, tolerance=None)

 

参数:
labels:新标签/索引使“ axis”指定的轴与之一致。
index, columns:要符合的新标签/索引。最好是一个Index对象,以避免重复数据
axis:轴到目标。可以是轴名称(“索引”,“列”)或数字(0、1)。
method:{None,“ backfill” /“ bfill”,“ pad” /“ ffill”,“ nearest”},可选
copy:即使传递的索引相同,也返回一个新对象
level:在一个级别上广播,在传递的MultiIndex级别上匹配索引值
fill_value:在计算之前,请使用此值填充现有的缺失(NaN)值以及成功完成DataFrame对齐所需的任何新元素。如果两个对应的DataFrame位置中的数据均丢失,则结果将丢失。
limit:向前或向后填充的最大连续元素数
tolerance:不完全匹配的原始标签和新标签之间的最大距离。匹配位置处的索引值最满足方程abs(index [indexer]-target)

返回:重新索引:DataFrame

范例1:采用reindex()用于重新索引 DataFrame 的函数。默认情况下,新索引中在 DataFrame 中没有对应记录的值被分配为NaN。
注意:我们可以通过将值传递给关键字fill_value来填充缺失的值。

# importing pandas as pd import pandas as pd    # Creating the dataframe  df = pd.DataFrame({"A":[1, 5, 3, 4, 2],                    "B":[3, 2, 4, 3, 4],                    "C":[2, 2, 7, 3, 4],                    "D":[4, 3, 6, 12, 7]},                    index =["first", "second", "third", "fourth", "fifth"])    # Print the dataframe df
 

让我们使用dataframe.reindex()重新索引 DataFrame 的功能

# reindexing with new index values df.reindex(["first", "dues", "trois", "fourth", "fifth"])
 

输出:

注意输出,新索引填充为NaN值,我们可以使用参数fill_value填写缺少的值

# filling the missing values by 100 df.reindex(["first", "dues", "trois", "fourth", "fifth"], fill_value = 100)
 

输出:


范例2:采用reindex()重新索引列轴的功能

# importing pandas as pd import pandas as pd    # Creating the first dataframe  df1 = pd.DataFrame({"A":[1, 5, 3, 4, 2],                     "B":[3, 2, 4, 3, 4],                     "C":[2, 2, 7, 3, 4],                     "D":[4, 3, 6, 12, 7]})    # reindexing the column axis with # old and new index values df.reindex(columns =["A", "B", "D", "E"])
 

输出:

注意,我们有NaN重新编制索引后,新列中的值会发生变化,我们可以解决重新编制索引时遗漏的值。通过论证fill_value 功能。

# reindex the columns # fill the missing values by 25 df.reindex(columns =["A", "B", "D", "E"], fill_value = 25)
 

输出:


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM