gpt4 book ai didi

python - 如何量化 Pandas 的垃圾箱迁移?

转载 作者:行者123 更新时间:2023-12-01 07:22:51 24 4
gpt4 key购买 nike

我对相同的数字有两个不同的计算,我想研究从计算 A 迁移到 B 后将发生的箱迁移。是否有一个 Pandas 单行函数可以为我提供一个具有迁移概率的矩阵数据框中两列的 bin 之间?

示例:

这是一个数据框:

df=pd.DataFrame({
'A':[1.1,1.3,1,2.2,2.1,2.3,3,3.1,3.2],
'B':[1.2,1.1,2.2,2.1,2,2.1,1.1,3.4,3.2]})

我可以进行简单的分箱:

df['A']=np.floor(df['A']).astype(int)
df['B']=np.floor(df['B']).astype(int)

所以,给定这个数据框:

   A  B0  1  11  1  12  1  23  2  24  2  25  2  26  3  17  3  38  3  3

我想构建这个矩阵:

    1   2   3---------------1| 2/3 1/3  02|  0   1   03| 1/3  0  2/3

可以看到它显示了箱之间的迁移概率(好吧,“频率”)。

  • 1 有 2/3 的概率保持为 1,1/3 的概率变为 2。
  • 2 的概率为 1 保持为 2。
  • 3 有 1/3 的概率变为 1,2/3 的概率保持为 3。

我可能可以手动计算迁移概率,但经验告诉我,总是有一个 pandas oneliner 可以更干净、更快地完成工作。

Dataframe.corr() 方法会将两列视为变量以在之间构建相关矩阵。那不是我要找的。我正在寻找值之间的相关性。

最佳答案

试试这个,

df_confusion = pd.crosstab(df['A'], df['B'])/df['A'].nunique()

操作:

B         1         2         3
A
1 0.666667 0.333333 0.000000
2 0.000000 1.000000 0.000000
3 0.333333 0.000000 0.666667

关于python - 如何量化 Pandas 的垃圾箱迁移?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57604303/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com