在字典中操作Pandas数据框时的奇怪行为



我无法理解这种行为。我有一个数据框架,它以"值"的形式出现。在字典里面my_dict

my_dict = {'a': pd.DataFrame({'x': [1], 'y': [2]})}
print(my_dict)
>>{'a':    x  y
0  1  2}

现在,当我尝试在数据框架上进行数学操作时,它可以工作,但是在数据框架上重命名列不起作用-

for key, val in my_dict.items():
val['z'] = val['x'] * val['y']
val = val.rename(columns = {'x': 'new_x'})
print(my_dict)
{'a':    x  y  z
0  1  2  2}

数学运算val['z'] = val['x'] * val['y']my_dict内产生了一个新的列z

但是列重命名操作val = val.rename(columns = {'x': 'new_x'})没有效果。

为什么我在my_dict中没有看到new_x列。发生了什么事?

修改为inplace

for key, val in my_dict.items():
val['z'] = val['x'] * val['y']
val.rename(columns = {'x': 'new_x'},inplace=True)

my_dict
Out[26]: 
{'a':    new_x  y  z
0      1  2  2}

相关内容

  • 没有找到相关文章

最新更新