写入csv时跳过第一行(pandas.DataFrame.to_csv)

Mar*_*rco 4 python csv export-to-csv pandas

在我的 python 脚本中,我正在读取一个 csv 文件

df = pd.read_csv('input.csv', sep=';', encoding = "ISO-8859-1", skiprows=2, skipfooter=1, engine='python')
Run Code Online (Sandbox Code Playgroud)

我跳过了 csv 文件中的前两行,因为它们只是我不需要的描述。

导入后,我正在过滤和分离数据。我想将数据写回 csv 文件,同时具有与以前相同的格式(前两行为空或导入前的描述)。我怎样才能做到这一点?

目前我正在使用

df.to_csv('output.csv'), sep=';', encoding = "ISO-8859-1")
Run Code Online (Sandbox Code Playgroud)

是否有类似参数“skiprows”用于导出?我在.to_csvapi 文档中找不到一个。

jez*_*ael 5

一种可能的解决方案是先用NaNs写入 DataFrame ,然后附加 original DataFrame

df1 = pd.DataFrame({'a':[np.nan] * 2})
df1.to_csv('output.csv', index=False, header=None)
df.to_csv('output.csv', sep=';', encoding = "ISO-8859-1", mode='a')
Run Code Online (Sandbox Code Playgroud)

或相同的原始标头到df1并首先写入,只需要|标头数据中没有值:

df1 = pd.read_csv('input.csv', sep='|', encoding = "ISO-8859-1", nrows=2, names=['tmp'])

df1.to_csv('output.csv', index=False, header=None)
df.to_csv('output.csv', sep=';', encoding = "ISO-8859-1", mode='a')
Run Code Online (Sandbox Code Playgroud)