python - 列代表行值的表

标签 python sql r shell

创建列值为 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/

相关文章:

sql - 基于两表间子查询的Oracle SQL更新

python - Scikit-learn 的 GridSearchCV 中的 Grid_scores_ 是什么意思

python - 如何使用 sympy 求快速 sigmoid 函数的反函数?

python - 如何在 Python 中使用另一个函数中的函数并对其进行操作?

sql - Oracle SQL 存储过程重复错误和多行

sql - 在持续时间列表中汇总每日总和

r - 双向 key<->val 查找表的正确数据结构

r - ggplotly 没有适用于 'plotly_build' 的方法应用于类 "NULL"if 语句的对象

r - 返回唯一组合的ID

python - Python 中的 HTML 解析器