Python 为什么这个简单的reindex Panda df函数不起作用?
我试图在一个函数中重新索引数据帧,但它不起作用。它在功能之外工作,所以我完全迷路了。以下是我正在做的: 基于来自df1的索引重新索引df2 职能之外:Python 为什么这个简单的reindex Panda df函数不起作用?,python,pandas,python-3.6,Python,Pandas,Python 3.6,我试图在一个函数中重新索引数据帧,但它不起作用。它在功能之外工作,所以我完全迷路了。以下是我正在做的: 基于来自df1的索引重新索引df2 职能之外: def reindex_df(a,b): a = a.reindex(b.index) df2=df2.reindex(df1.index) 这个结果正是我想要的,并且有效。但是,在这一职能范围内: def reindex_df(a,b): a = a.reindex(b.index) 其中a=df2和b=df1 这是怎么回
def reindex_df(a,b):
a = a.reindex(b.index)
df2=df2.reindex(df1.index)
这个结果正是我想要的,并且有效。但是,在这一职能范围内:
def reindex_df(a,b):
a = a.reindex(b.index)
其中a=df2
和b=df1
这是怎么回事?我已经研究并思考了一些与局部变量和全局变量有关的问题,但是(为此)调整了代码,仍然不起作用。我错过了什么 比较以下两个示例:
def f1(a):
a = a + 1
a = 10
print(f'Before: {a}')
f1(a)
print(f'After: {a}')
结果是:
Before: 10
After: 10
Before: 10
After: 11
因此f1中的替换在该函数之外是不可见的def f2(a):
return a + 1
a = 10
print(f'Before: {a}')
a = f2(a)
print(f'After: {a}')
这一次的结果是:
Before: 10
After: 10
Before: 10
After: 11
在同一个变量下。函数末尾是否缺少一个
return
语句?