我无法理解这种行为。我有一个数据框架,它以"值"的形式出现。在字典里面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}