Python 从中的.csv文件的DataFrame中删除索引列
我这里有一个python脚本:Python 从中的.csv文件的DataFrame中删除索引列,python,sql,pandas,csv,Python,Sql,Pandas,Csv,我这里有一个python脚本: import pyodbc import pandas as pd from sqlalchemy import create_engine import csv df = pd.read_sql("""script_generator""", conn) for count, row in df.iterrows(): row.to_csv('generatedfile{}.sql'.fo
import pyodbc
import pandas as pd
from sqlalchemy import create_engine
import csv
df = pd.read_sql("""script_generator""", conn)
for count, row in df.iterrows():
row.to_csv('generatedfile{}.sql'.format(count), index=False, index_label=False, quoting=csv.QUOTE_NONE, escapechar=' ')
当我运行它时,它会创建单独的csv文件,并用sql格式化。
generatedfile2中的输出如下所示:
2
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'table1') AND type in (N'U'))
BEGIN
PRINT 'DROPPING TABLE [dbo].[table1]....'
DROP TABLE [dbo].[table1];
END;
其余文件具有相同的格式。
有没有什么方法可以改变我的代码,去掉代码开头的“2”?因此,它无法在SQL中正常运行。出于某种原因,index_label=False无法摆脱它。
非常感谢 运行
DataFrame.iterrows
时,行
呈现为熊猫系列而不是数据帧。实际上,你正在跑步
df.iterrows()中的计数行的:
打印(类型(行))
#
#
#
...
但是,此方法对于迭代单个列没有用处。相反,考虑简单地直接循环到列的值(假设完全是SQL语句)。在每次迭代中,使用典型的open
+write
方法创建相应的csv文件。使用枚举
对文件后缀进行顺序编号
对于计数,枚举中的val(df['sql\u string\u column']):
将open('generatedfile{}.sql'。格式(计数),'w')作为f:
f、 写入(val)
你知道吗,这可能是个bug!我确实复制了这个问题。奇怪的是,默认值index=True
和index\u label=None
在.csv中以逗号开头。考虑警告作者。请确保包含可运行代码和小数据示例。感谢您的输入!我可以用你的方法去掉索引号。我的列没有列名,所以我写了:对于I,枚举中的val(df[''):使用open('generatedfile{}.sql','w')作为f:f.write(val),但它现在只创建了一个.sql文件,名为generatedfile{}.sql。有一个空白的列名会把事情搞砸吗?