将Python熊猫插入DF无法正常工作

时间:2018-08-17 20:00:21

标签: python pandas

我有一个看起来像这样的数据框:

df1

        A        Q
0   Apple    chair
1  orange     desk
2    pear  monitor
3   salad     room

df2 = df1[['Q']]

print(df2)

           Q
0      chair
1       desk
2    monitor
3       room


df2 = df2.insert(1, 'file_id_value', range(0, len(df2)))

print(df2)

不返回任何内容,特别是单词'None'。你知道我在做什么错吗?我没有收到错误消息。

1 个答案:

答案 0 :(得分:3)

代替:

 df2 = df2.insert(1, 'file_id_value', range(0, len(df2)))

要做:

df2.insert(1, 'file_id_value', range(0, len(df2)))

说明:在Python中,一切都是对象。对象被创建并保存到内存中。与按值进行变量分配的其他编程语言相比,Python允许您从外部修改对象,而无需将更改保存到新变量中(只要对象是可变类型)。因此,您可以在df2中操作而无需使insert函数返回df2的新实例。这并不总是适用;例如,字符串是不可更改的,因此需要重新分配。

要了解更多信息,您可能需要查看以下SO问题:How are Python in-place operator functions different than the standard operator functions?

引用与加法运算符相关的可变对象:

  

对象的 iadd 方法也带有两个参数,但是就地进行更改,修改了第一个参数的内容。因为这需要对象突变,所以不可变类型(如标准数字类型)不应具有 iadd 方法。