python - Dataframe 中的转换矩阵未传递值

标签 python matrix pandas

我正在尝试实现转换矩阵。

数据和转换矩阵都在使用 Pandas 的 DataFrame 中

states_mat = pd.DataFrame(None, index=range(0,24), columns=range(0,24))
def states_update(data):

 states_vec = data['hr']
 # Do nothing if there is no sequence
 if len(states_vec) < 2:
     return

 for i in xrange(1, len(states_vec)):
     prev = states_vec[i-1]
     curr = states_vec[i]
     states_mat[curr][prev] += 1

数据是int64类型

它没有按我的意愿更新 +1 计数。我相信这是某种类型问题,但不确定如何强制类型。我正在为我的数据使用 DataFrame,因为我想使用组函数来拆分数据并应用上述函数。有什么建议么?

最佳答案

好的,所以第一个问题和解决您问题的问题是您创建了默认值为 Nonestates_mat 数据框,它变成了一个 numpy。 NaN.

您不能将整数添加到 NaN:

In [24]:

NaN + 1
Out[24]:
nan

因此将 DataFrame 构造更改为:

states_mat = pd.DataFrame(0, index=range(0,24), columns=range(0,24))

在这种情况下,子索引可能没问题,但您可以使用 loc 也可以:

states_mat.loc[curr, prev] += 1

关于python - Dataframe 中的转换矩阵未传递值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23915835/

相关文章:

c# - 对方法 C# 的引用

python - 在 python 中网页抓取 text()

python - 如何在 SMALLINT 上使用 teradatasql 在数据库中插入空值,计算期间发生数字溢出

n 位矩阵的算法

matlab - 确保矩阵是对称的(并且是正半定的)

python - Pandas/Numpy 的历史平均值

Python paramiko 脚本,在 exec_command() 期间读取输出时出现问题

reporting-services - SSRS 如何移动行组?

python - 合并两列以消除重复的行

python - 如何将 Pandas 数据框列连接到可迭代列表中?