python - 在字典中操作 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']
导致数据框中的新z
列my_dict
但是列重命名操作val = val.rename(columns = {'x': 'new_x'})
没有效果。
为什么我new_x
在my_dict
. 到底是怎么回事?
解决方案
将分配更改为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}
推荐阅读
- python - 遍历多个 url
- django - 如何动态设置 django modelform 的可见字段?
- julia - Juniper 使用 Ipopt 和 Cbc 对 MINLP 进行优化,约束包括最大和最小错误:LoadError: AssertionError: length(x) == d.len
- angular - Firebase 请求返回布尔值
- javascript - 在 React 中未定义 useContext()
- amazon-dynamodb - DynamoDB Stream 同时显示 INSERT 和 UPDATE 以插入新记录
- python - Python:换屏的简单函数
- java - 使用 jmx 和 java 获取 kafka mbeans
- r - 在 R 中绘制网络时调整 igraph mark.groups 多边形的曲率
- python - 计算 LSTM 模型的雅可比矩阵 - Python