【发布时间】:2020-05-05 14:23:40
【问题描述】:
假设我有一个看起来像这样的pandas 数据框:
A B C D value
1 4 6 9 100
1 4 6 10 101
1 5 7 9 100
1 5 7 11 102
1 5 8 10 105
也就是说,有一些识别特征的组合唯一地识别一行,然后是一些值。在这种情况下,A, B, C, D 中有 4 个识别特征,这四个值的组合在数据帧中将是唯一的。
我想print下面嵌套if声明:
if A == 1
if B == 4
if C == 6
if D == 9
100
if D == 10
101
if B == 5
if C == 7
if D == 9
100
if D == 11
102
if C == 8
if D == 10
105
假设我知道识别列已经按基数递增的顺序排列,那么将具有可变数量标识符 A, B, ... 的数据编码为这种格式的有效方法(就存储字符串所需的内存而言)是什么?
and 也是允许的,所以我也可以像这样表示树:
if A == 1
if B == 4 and C == 6
if D == 9
100
if D == 10
101
if B == 5
if C == 7
if D == 9
100
if D == 11
102
if C == 8 and D == 10
105
会为后者欣喜若狂,但实现前者的解决方案已经解决了我的问题!
这是我拼凑的df 示例:
pd.DataFrame({'A': [1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3],
'B': [4, 4, 5, 5, 5, 4, 4, 4, 4, 5, 4, 5, 5, 5, 5],
'C': [6, 6, 7, 7, 8, 6, 7, 7, 7, 8, 6, 7, 8, 8, 8],
'D': [9, 10, 9, 11, 10, 12, 12, 13, 15, 10, 9, 10, 9, 16, 17],
'value': [100, 101, 100, 102, 105, 103, 103, 100, 101, 107, 102, 100, 111, 105, 109]})
【问题讨论】:
标签: python recursion data-structures encoding tree