【发布时间】:2019-07-02 19:08:24
【问题描述】:
我正在 python 中使用 psycopg2 运行查询。查询结果保存到列表中。我正在尝试将此列表转换为 numpy 数组,然后写入 csv 文件。我是这样做的。
rows = rcursor.fetchall()
df = pd.DataFrame(np.array(rows), columns = rows("db1 db2 db3 db4 db5"))
df.to_csv('alldata.csv',sep=',')]
但是当我这样做时,我得到了错误:
ValueError: Must pass 2-d input
我想我必须应用 .reshape 但行数很大(比如 200000)。从查询获取到列表的数据如下所示。
RealDictRow([('db1', '0001'), ('db2', 002), ('db3', 003), ('db4', '004'), ('db5', 'Hello I worked on this so far but not happening. Call my number 245-456-7892)
如何在不出现 ValueError: Must pass 2-d input 的情况下正确地将其写入 csv。提前致谢!
【问题讨论】:
-
您是否通过键入复制了该代码?这里面有太多的错误。
np.array(list)最有可能是np.array(rows),"colname 4"最有可能是"colname_4"。此外,在您的最后一个代码部分中,'Col2_name'以大写字母开头,而其他的则不是。然后,'colname_2'突然变成了'col2_name'。'col1_value'和'col4_value'是字符串,而col2_value和col3_value是变量。col5_value是一个字符串,但没有结尾。这些只是错别字。 -
您在此处输入之前进行了一些编辑。我会纠正错别字。
-
我在这里看到的唯一编程错误是
list("colname_1 colname_2")不是你想象的那样。它是['c', 'o', 'l', 'n', 'a', 'm', 'e', '_', '1', ' ', 'c', 'o', 'l', 'n', 'a', 'm', 'e', '_', '2']。我想你想写的是["colname_1", "colname_2"]。 -
好吧,不要在这里输入,只需复制粘贴即可。如果您遇到无法将其识别为代码的问题,请在前后写上```或~~~。参考this。
-
你确定返回值是这样的,而不是
RealDictRow({'col1_name': 'col1_value', 'col2_name': 'col2_value', 'col3_name': 'col3_value', 'col4_name': 'col4_value', 'col5_name': 'col5_value})?
标签: python-3.x pandas dataframe psycopg2 numpy-ndarray