Python Pandas-将每个单元格除以列总和-但返回相同的值
我在熊猫方面遇到了一个非常奇怪(而且令人沮丧)的问题。 我想将数据帧中的每个单元格除以列的和。我已经在谷歌上搜索并使用了建议的答案,但它不起作用——每行的内容都返回相同的值Python Pandas-将每个单元格除以列总和-但返回相同的值,python,pandas,dataframe,Python,Pandas,Dataframe,我在熊猫方面遇到了一个非常奇怪(而且令人沮丧)的问题。 我想将数据帧中的每个单元格除以列的和。我已经在谷歌上搜索并使用了建议的答案,但它不起作用——每行的内容都返回相同的值 dfs = pd.DataFrame(np.random.randint(0,10,size=(3,3)), columns=['A','B','C']) # Now here is the copied solution from google dfs = dfs.div(dfs.sum(axis=0),axis=1)
dfs = pd.DataFrame(np.random.randint(0,10,size=(3,3)), columns=['A','B','C'])
# Now here is the copied solution from google
dfs = dfs.div(dfs.sum(axis=0),axis=1)
因此,对于上面这样的简单示例,它非常有效。但当我在我的dataframe(有1080列)上尝试它时,每一行都有相同的值。
我已确保删除所有nan、inf或除数字以外的任何内容,并且所有列的数据类型都是float64。我不知道为什么会发生这种情况,有人能告诉我什么是错的吗?我觉得这是因为数据帧的大小?但是,1080列和8行对熊猫来说肯定不会太难处理吗
提前谢谢
编辑:
是的,运行此代码以获取数据帧的前2列
dfs = pd.DataFrame({'7006091':[2.219749271,2.15577658,1.857604216,
1.588101736,
0.925926932,
1.413871811,
1.528702513,
1.313778722
],'7007772':[2.21238513,
2.148624672,
1.851441511,
1.582833121,
0.922855119,
1.409181214,
1.523630958,
1.309420189
]})
我只是按照建议尝试了dfs.update,但它也不起作用。这就是返回的内容:
dfs.update(dfs.div(dfs.sum(axis=0),axis=1))
IICU
dfs.update(dfs.div(dfs.sum(axis=0),axis=1))
dfs
由于列的分布相同,所以输出相同的原因,请查看
dfs['7006091']/dfs['7007772']
0 1.003329
1 1.003329
2 1.003329
3 1.003329
4 1.003329
5 1.003329
6 1.003329
7 1.003329
dtype: float64
因此,在我们使用列
sum
标准化后,它们的值是相同的。您可以显示您的原始dfs,只需更新两列!这是不可理解的-我感觉一些熊猫文件被破坏了,没有发布代码、数据、错误消息等的图像-复制或在问题中键入文本。谢谢你的建议,但没有成功,我已经更新了我的帖子…你用的是什么版本?它给了你什么错误?看来它对我有用,除非我没把你弄对。请看我的编辑我的熊猫版是1.0.1等等-你的结果也不正确?这两列不应该完全相同?相同的版本。我刚刚发布的输出答案是你想要的吗?当你跑的时候,它会给你什么错误?尤本发现了问题。。。我是个白痴!无论如何谢谢你的帮助