Pandas.io.sql read_frame()和to_csv()方法显示带有附加列的输出

时间:2016-01-26 11:28:30

标签: python sqlite csv pandas

这是我需要执行的sqlite查询,用于使用pandas.io.sql将输出存储到csv文件中:

sql2 = "select raw_contact_id as ID, group_concat(data1) as DETAILS from data group by raw_contact_id"
table2 = sql.read_frame(sql2, conn2)
table2.to_csv(cont_output, headers=True, index=False, encoding="utf8")

但我得到了输出:

ID   |  DETAILS |
1346 |  A       | P
1347 |  B       | Q
1349 |  C       | R
1350 |  D       | S

DETAILS列在csv文件中被拆分为两列。当我在终端中执行此查询时,我得到正确的输出,其中包含DETAILS列下的所有详细信息。这个查询执行有什么问题?

1 个答案:

答案 0 :(得分:0)

来自documentation

  

组中值之间的默认分隔符是逗号(“,”)。至   明确指定分隔符,使用SEPARATOR后跟字符串   应在组值之间插入的文字值。至   完全取消分隔符,指定SEPARATOR''。

这意味着您获得了A,P的{​​{1}},由于DETAILS,它会被分为两列csv。

要修复此问题,您可以更改查询中的分隔符,也可以更改,中的分隔符。