【发布时间】:2018-01-22 01:43:11
【问题描述】:
我想逐行计算 pandas 数据框的质心 (cm)(大约 4000 行 x 7100 列)。我的行的索引是字符串类型,值只是数字。所以基本上我的数据框是这样的——只是更大:
import pandas as pd
inp = [{'name':'aaa', 'c2':100, 'c3': 20, 'c4':10}, {'name':'bbb','c2':110, 'c3': 20, 'c4':10}, {'name':'ccc','c2':120, 'c3': 20, 'c4':10}]
df = pd.DataFrame(inp)
df = df.set_index('name')
c2 c3 c4
name
aaa 100 20 10
bbb 110 20 10
ccc 120 20 10
在 R 中我会使用这个(我的矩阵称为 m 并且与上面的数据框具有相同的结构):
cm <- apply( m, 1, function(x) sum( x*(1:length(x)) ) / sum(x) )
编写一个计算 cm 的函数然后将其逐行应用于我的数据框应该相当容易,但不知何故我不明白这一点。我的 Python 技能非常有限。我还不明白我基本上如何遍历行的元素来获取 cm 的语法。
【问题讨论】:
-
当我的 - 在这种情况下 - 矩阵被称为 m ...不清楚
m在这里是什么? -
m 在 R 中将是我的矩阵的名称,它看起来基本上像我上面发布的数据框,抱歉不清楚。我现在试图在帖子中说得更清楚。
-
在这种情况下,我建议
pandas是错误的选择...查看numpy处理您的数据