小编mat*_*eek的帖子

为什么使用两组括号进行 .loc 赋值会导致 pandas.DataFrame 中的 NaN ?

我有一个数据框:

姓名 年龄
0 保罗 25
1 约翰 27
2 账单 23

我知道如果我输入:

df[['name']] = df[['age']]
Run Code Online (Sandbox Code Playgroud)

我会得到以下信息:

姓名 年龄
0 25 25
1 27 27
2 23 23

但我期望该命令得到相同的结果:

df.loc[:, ['name']] = df.loc[:, ['age']]
Run Code Online (Sandbox Code Playgroud)

但相反,我得到了这个:

姓名 年龄
0 25
1 27
2 23

[]由于某种原因,如果我省略列名称周围的方括号,我将得到我所期望的结果。那是命令:

df.loc[:, 'name'] = df.loc[:, 'age']
Run Code Online (Sandbox Code Playgroud)

给出正确的结果:

姓名 年龄
0 25 25
1 27 27
2 23 23

为什么两对括号.loc结果是NaN?这是某种错误还是有意的行为?我无法弄清楚这种行为的原因。

python nan series dataframe pandas

12
推荐指数
2
解决办法
2183
查看次数

标签 统计

dataframe ×1

nan ×1

pandas ×1

python ×1

series ×1