我正在尝试使用csv文件的元素创建一个图,如下所示:
h1,h2,h3,h4
a,1,0,1,0
b,1,1,0,1
c,0,0,1,0
Run Code Online (Sandbox Code Playgroud)
我尝试了以下代码,但收到错误说
Error in data.frame(id = varieties, attr(mat, "row.names"), check.rows = FALSE) :
arguments imply differing number of rows: 8, 20
Run Code Online (Sandbox Code Playgroud)
我的示例数据有8列和20行(不包括标题和行名称).我尝试在线查找并尝试实施一些修复,但问题仍然存在.我真的很感激任何帮助.
mat <- read.csv("trial.csv", header=T, row.names=1)
varieties = names(mat)
df <- data.frame(id=varieties,attr(mat, "row.names"), check.rows= FALSE)
Run Code Online (Sandbox Code Playgroud) 我是 Python 新手,我正在尝试列出 FTP 中所有子目录中的所有文件。FTP 和往常一样,就是这种格式。
A
B
C
Run Code Online (Sandbox Code Playgroud)
子目录:
AA
BB
CC
Run Code Online (Sandbox Code Playgroud)
['A', 'B', 'C']
我可以使用列出目录ftp.nlist()
。我想得到['AA', 'BB', 'CC']
我的输出。我已经尝试并查找了很多以找到解决方案/提示来执行此操作。
我有两个csv文件,如下所示.
CSV1
data13 data23 d main_data1;main_data2 data13 data23
data12 data22 d main_data1;main_data2 data12 data22
data11 data21 d main_data1;main_data2 data11 data21
data3 data4 d main_data2;main_data4 data3 data4
data52 data62 d main_data3 data51 data62
data51 data61 d main_data3 main_data3 data61
data7 data8 d main_data4 data7 data8
Run Code Online (Sandbox Code Playgroud)
CSV2
id1 main_data1 a1 a2 a3
id2 main_data2 b1 b2 b3
id3 main_data3 c1 c2 c3
id4 main_data4 d1 d2 d3
id5 main_data5 e1 e2 e3
Run Code Online (Sandbox Code Playgroud)
现在我的问题是,我知道当两个文件中的一列完全相同时如何合并两个CSV文件.但我的问题有点不同.CSV1中的第4列可以包含CSV2中的第2列.我想获得一个CSV文件,如下所示
FINAL_CSV
id1 main_data1 a1 a2 a3 data13
id2 main_data2 …
Run Code Online (Sandbox Code Playgroud) 我正在尝试在 sqlite3 中执行以下查询:
WITH
MATCHES AS(
SELECT CSV2.*
, CSV1.ROW as ROW_1
, CSV1.C4 as C4_1
, CSV1.C5 as C5_1
FROM CSV2
LEFT JOIN CSV1
ON CSV1.C4 LIKE '%' || CSV2.C2 || '%'
),
EXACT AS(
SELECT *
FROM MATCHES
WHERE C4_1 = C5_1
),
MIN_ROW AS(
SELECT C1
, min(ROW_1) as ROW_1
FROM MATCHES
WHERE C1 NOT IN (SELECT C1 FROM EXACT)
GROUP BY C1, C2, C3, C4, C5
)
SELECT *
FROM EXACT
UNION
SELECT MATCHES.*
FROM MIN_ROW …
Run Code Online (Sandbox Code Playgroud) 我有一个 CSV 文件,我正在阅读该文件,如下所示。我需要获取所有字符串的第一个单词。我知道如何获得第一个字母,但我不确定如何获得单词。
['diffuse systemic sclerosis', 'back', 'public on july 15 2008']
['diffuse systemic sclerosis', 'forearm', 'public on may 9 2014']
Run Code Online (Sandbox Code Playgroud)
我希望我的输出是
diffuse
back
public
forearm
Run Code Online (Sandbox Code Playgroud) 我对正则表达式很不好。我正在尝试根据文件名在文件夹中查找文件。大多数文件名都是格式GSE1234_series_matrix.txt
,因此我一直使用os.path.join("files", GSE_num + "_series_matrix.txt")
. 但是,有一些文件的名称类似于GSE1234-GPL22_series_matrix.txt
. 我不确定如何处理以 GSE 编号开头并以 _series_matrix.txt 结尾的所有文件(可能在一个语句中)。我真的很感激任何帮助。
编辑 - 我在一个文件夹中有这些系列矩阵文本文件,我在其中提到了使用路径连接的路径。我还输入了一个文本文件,其中包含所有 GSE 编号。这样,它仅针对选定的 GSE 编号运行脚本。因此,并非文件夹中的所有内容都在 GSE 编号列表中,并且该列表仅包含 GSE 编号,而不包含 GPL。例如,文件 GSE1234-GPL22_series_matrix.txt 在列表中将是 GSE1234。
我有一个CSV文件,我在下面读到:
with open ("ann.csv", "rb") as annotate:
for col in annotate:
ann = col.lower().split(",")
print ann[0]
Run Code Online (Sandbox Code Playgroud)
我的CSV文件如下所示:
H1,H2,H3
da,ta,one
dat,a,two
Run Code Online (Sandbox Code Playgroud)
我的输出如下:
da
dat
Run Code Online (Sandbox Code Playgroud)
但我想要一个逗号分隔的输出,如(da,dat).我怎样才能做到这一点?如果你在downvoting之前给我一个想法,我真的很感激.
我有两个列表,如下所示.我知道我可以使用set(list1)-set(list2)或反之亦然来打印与其他对应列表不同的列表.但是,我不希望打印出完整的列表,我只想要修改列表的那一部分.
例如,list1:
[['Code', 'sID', 'dID', 'cID', 'ssID'], ['ABCD-00', 'ABCD-00-UNK', '358', '1234', '9999'], ['ABCD-01', 'ABCD-00-UNK', 160, '993', '587']]
Run Code Online (Sandbox Code Playgroud)
列表2:
[['Code', 'sID', 'dID', 'cID', 'ssID', 'AddedColumn'], ['ABCD-00', 'ABCD-00-UNK', '358', '1234', '9999', 'AddedValue1'], ['ABCD-01', 'ABCD-00-UNK', 160, '993', 'ChangedValue', 'AddedValue2']]
Run Code Online (Sandbox Code Playgroud)
如果我设置差异,它会打印出整个列表.我希望输出只显示"Code","sID"相同时不同/添加/删除的列.
编辑:
每个列表列表的第一个列表是标题.所以我想比较"Code","sID"列中的值匹配时的列表.
期望的输出:
Added - ['AddedColumn', 'AddedValue1', 'AddedValue2']
Deleted - []
Changed - ['Code', 'ABCD-01', 'ssID', 'ChangeValue']
Run Code Online (Sandbox Code Playgroud)
像这样或类似的东西也很好.