我有桌子:
id | name
1 | a,b,c
2 | b
Run Code Online (Sandbox Code Playgroud)
我想要像这样的输出:
id | name
1 | a
1 | b
1 | c
2 | b
Run Code Online (Sandbox Code Playgroud) 我尝试将文件读入熊猫.该文件的值由空格分隔,但我尝试的空格数不同:
pd.read_csv('file.csv', delimiter=' ')
Run Code Online (Sandbox Code Playgroud)
但它不起作用
我有一个非标准化的表,其中一列包含逗号分隔列表,该列表是另一个表的外键:
+----------+-------------+ +--------------+-------+
| part_id | material | | material_id | name |
+----------+-------------+ +--------------+-------+
| 339 | 1.2mm;1.6mm | | 1 | 1.2mm |
| 970 | 1.6mm | | 2 | 1.6mm |
+----------+-------------+ +--------------+-------+
Run Code Online (Sandbox Code Playgroud)
我想将这些数据读入一个不提供过程语言的搜索引擎.
那么,有没有一种方法,要么做一个加入此列或运行该数据插入相应的条目到一个新表的查询?结果数据应如下所示:
+---------+-------------+
| part_id | material_id |
+---------+-------------+
| 339 | 1 |
| 339 | 2 |
| 970 | 2 |
+---------+-------------+
Run Code Online (Sandbox Code Playgroud)
如果DBMS支持函数返回一个表但MySQL显然没有,我可以想到一个解决方案.
因此,我们得到了一个带有分隔值的代码字段,例如“a_bb_ccc_dddd”,并且需要第三个值,即“ccc”。
我实际上获得了前 N 名的第一名。
DECLARE @table1 TABLE (path VARCHAR(MAX));
INSERT INTO @table1 (path)
VALUES ('a_bb_ccc_dddd'), ('111_222_333_444'), ('')
SELECT
path,
(SELECT TOP 1 value
FROM STRING_SPLIT (path, '_')) AS part
FROM
@table1
Run Code Online (Sandbox Code Playgroud) 我有一个数据框,例如
COl1
scaffold_97606_2-BACs_-__SP1_1
UELV01165908.1_2-BACs_+__SP2_2
UXGC01046554.1_9-702_+__SP3_3
scaffold_12002_1087-1579_-__SP4_4
Run Code Online (Sandbox Code Playgroud)
我想将两者分成两列并得到:
COL1 COL2
scaffold_97606 2-BACs_-__SP1_1
UELV01165908.1 2-BACs_+__SP2_2
UXGC01046554.1 9-702_+__SP3_3
scaffold_12002 1087-1579_-__SP4_4
Run Code Online (Sandbox Code Playgroud)
所以你可以看到分隔符的变化,它可以是.Number_或 Number_Number
到目前为止,我写道;
df2 <- df1 %>%
separate(COL1, paste0('col', 1:2), sep = " the separator patterns ", extra = "merge")
Run Code Online (Sandbox Code Playgroud)
但我不知道我应该在这" the separator patterns "部分使用什么分隔符
我正在尝试解析管道分隔文件并将值传递到列表中,以便稍后我可以从列表中打印选择性值.
该文件看起来像:
name|age|address|phone|||||||||||..etc
Run Code Online (Sandbox Code Playgroud)
它有超过100列.