df.reindex()和df.set_index()方法在熊猫中的区别

df.reindex()和df.set_index()方法在熊猫中的区别,第1张

df.reindex()和df.set_index()方法在熊猫中的区别

您可以通过一个简单的示例看到差异。让我们考虑以下数据帧:

df = pd.Dataframe({'a': [1, 2],'b': [3, 4]})print (df)   a  b0  1  31  2  4

索引则为0和1

如果

set_index
与列“ a”一起使用,则索引为1和2。如果这样做
df.set_index('a').loc[1,'b']
,则得到3。

现在,如果您要使用

reindex
相同的索引1和2(例如)
df.reindex([1,2])
,则在执行 *** 作时将获得4.0
df.reindex([1,2]).loc[1,'b']

发生的事情是,

set_index
用(1,2)(“ a”列中的值)替换了先前的索引(0,1),而没有触及“ b”列中的值的顺序

df.set_index('a')   ba   1  32  4

同时

reindex
更改索引,但将与原始df中的索引关联的列“ b”中的值保留

df.reindex(df.a.values).drop('a',1) # equivalent to df.reindex(df.a.values).drop('a',1)     b1  4.02  NaN# drop('a',1) is just to not care about column a in my example

最后,

reindex
在不更改与每个索引相关联的行的值的情况下更改索引的顺序,同时
set_index
将使用列的值更改索引,而无需触及数据框中其他值的顺序



欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5673601.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-17
下一篇2022-12-16

发表评论

登录后才能评论

评论列表(0条)

    保存