创建列值为 1 和 0 的表的最佳方法是什么。
id,string
1,"x,y,z"
2,"x,z"
3,"x"
我需要一张看起来像这样的 table
id,x,y,z,a,b,c
1,1,1,1,0,0,0
2,1,0,1,0,0,0
3,1,0,0,0,0,0
此外,字符串中所有可能的唯一值的完整列表是预定义的。 我有一个 csv 列表,看起来像
col
x
y
z
a
b
c
.
.
.
最佳答案
在SQL中,你可以使用case
:
select id,
(case when string like '%x%' then 1 else 0 end) as x,
(case when string like '%y%' then 1 else 0 end) as y,
. . .
from t;
可能有更简单的公式,具体取决于数据库。此外,这假设这些值不重叠 - 正如它们在您的问题中一样。例如,“苹果”和“菠萝”会引起问题。
关于python - 列代表行值的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33907571/