微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将 CDF 存储在单个数据帧单元格或多列中

如何解决将 CDF 存储在单个数据帧单元格或多列中

我有 10 个项目对,在这样的框架中称它们为 1A 和 1B、2A 和 2B、3A 和 3B -> 10A 和 10B:

Item_col1    Item_col2   
1A           1B         
2A           2B         
3A           3B         

每个项目(例如;2A)都有一个相关的累积概率分布函数。我存储在 np.arrays [CDF_A1,CDF_2A,CDF_3A,CDF_4A] 列表中的每个 CDF,每个都有 100 个元素,看起来有点像这样:

[0.0000,0.0100,0.2000,...0.9999,1.0]

我想将 CDF 添加到框架中,最终相互比较(例如:1A 与 1B、2A 与 2B),但我不知道将它们存储在框架中的最佳方式。>

像这样存储它们是否更好(并且可能吗?):

Item_col1    Item_col2    CDF_Item_col1    CDF_Item_col2
1A           1B           CDF_1A           CDF_1B
2A           2B           CDF_2A           CDF_2B
3A           3B           CDF_3A           CDF_3B

或者应该是这样还是必须是这样:

Item_col1    Item_col2 (As) CDF_Element1    CDF_Element2....CDF_Element100   (Bs) CDF_Element1    CDF_Element2....CDF_Element100 
1A           1B             0.0000          0.0100          1.0000                0.0000          0.0100          1.0000    
2A           2B             0.0000          0.0100          1.0000                0.0000          0.0100          1.0000
3A           3B             0.0000          0.0100          1.0000                0.0000          0.0100          1.0000

解决方法

我认为你可以像这样存储它们:

df
   item1 item2      cdfA      cdfB
0     1A    1B  0.574843  0.501655
1     1A    1B  0.574843  0.638855
2     1A    1B  0.574843  0.827372
3     1A    1B  0.574843  0.450464
4     1A    1B  0.162894  0.501655
5     1A    1B  0.162894  0.638855
6     1A    1B  0.162894  0.827372
7     1A    1B  0.162894  0.450464
8     1A    1B  0.479719  0.501655
9     1A    1B  0.479719  0.638855
10    1A    1B  0.479719  0.827372
11    1A    1B  0.479719  0.450464
12    1A    1B  0.724478  0.501655
13    1A    1B  0.724478  0.638855
14    1A    1B  0.724478  0.827372
15    1A    1B  0.724478  0.450464
16    2A    2B  0.827809  0.709354
17    2A    2B  0.827809  0.657139
18    2A    2B  0.827809  0.115151
19    2A    2B  0.827809  0.942483
20    2A    2B  0.717945  0.709354

正如您所说,您可能还想将这些 CDF 的值在 1A 和 1B、2A 和 2B 之间进行比较,等等,如果您以这种方式拥有数据框,我认为这对您来说会更容易稍后进行这些比较。如果您认为它会占用更多 RAM,您甚至可以将 item1 和 item2 列更改为 Categorical,因为它们是重复的,如

cols = ['item1','item2']
for col in cols:
    df[col] = df[col].astype('category')

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。