Pandas的reindex()方法可以用来重新排列DataFrame或Series的索引,并返回一个具有新索引的新对象。reindex()方法有以下几种常用的用法:
Series.reindex()
Series.reindex()方法用于Series类型,可以根据给定的索引值重新排列Series的索引。当索引值在原Series中不存在时,对应的值会被填充为NaN。
示例代码:
import pandas as pd
import numpy as np
s = pd.Series([1, 2, 3], index=['a', 'b', 'c'])
s_reindex = s.reindex(['a', 'b', 'c', 'd'])
print(s_reindex)
DataFrame.reindex()
DataFrame.reindex()方法用于DataFrame类型,可以根据给定的行索引和列索引值重新排列DataFrame的行索引和列索引。当行索引值或列索引值在原DataFrame中不存在时,对应的值会被填充为NaN。
示例代码:
import pandas as pd
import numpy as np
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]}, index=['a', 'b', 'c'])
df_reindex = df.reindex(index=['a', 'b', 'c', 'd'], columns=['A', 'B', 'C'])
print(df_reindex)
输出结果:
A B C
a 1.0 4.0 NaN
b 2.0 5.0 NaN
c 3.0 6.0 NaN
d NaN NaN NaN
Series.reindex_like()
Series.reindex_like()方法用于将一个Series的索引与另一个Series的索引对齐,并返回一个新的Series对象。当新Series的索引值在原Series中不存在时,对应的值会被填充为NaN。
示例代码:
import pandas as pd
import numpy as np
s1 = pd.Series([1, 2, 3], index=['a', 'b', 'c'])
s2 = pd.Series([4, 5, 6], index=['a', 'c', 'd'])
s_reindex = s1.reindex_like(s2)
print(s_reindex)
输出结果:
a 1.0
c 3.0
d NaN
dtype: float64
DataFrame.reindex_like()
DataFrame.reindex_like()方法用于将一个DataFrame的行索引和列索引与另一个DataFrame的行索引和列索引对齐,并返回一个新的DataFrame对象。当新DataFrame的行索引值或列索引值在原DataFrame中不存在时,对应的值会被填充为NaN。
示例代码:
import pandas as pd
# 创建原始的DataFrame对象
df1 = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]}, index=['a', 'b', 'c'])
# 创建目标的DataFrame对象
df2 = pd.DataFrame({'A': [7, 8], 'B': [9, 10]}, index=['d', 'e'])
# 使用df2的索引重置df1的索引
df3 = df1.reindex_like(df2)
print(df3)
输出结果:
A B
d NaN NaN
e NaN NaN
在上面的代码中,我们首先创建了一个原始的DataFrame对象df1,包含两个列A和B,索引为a、b、c。然后,我们创建了一个目标的DataFrame对象df2,包含两个列A和B,索引为d、e。最后,我们使用df2的索引重置df1的索引,并将结果存储在df3中。
在输出结果中,我们可以看到df3是一个具有相同形状的新DataFrame对象,其索引为d、e,而数据为空值。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Pandas reindex重置索引的4种方法 - Python技术站