写入 csv 时跳过第一行 (pandas.DataFrame.to_csv)
Skip first rows when writing csv (pandas.DataFrame.to_csv)
在我的 python 脚本中,我正在通过
读取一个 csv 文件
df = pd.read_csv('input.csv', sep=';', encoding = "ISO-8859-1", skiprows=2, skipfooter=1, engine='python')
我跳过了 csv 文件中的前两行,因为它们只是我不需要的描述。
导入后,我正在过滤和分离数据。 我想将数据写回 csv 文件,同时具有与以前相同的格式(前两行为空或导入前的描述)。我该怎么做?
目前我正在使用
df.to_csv('output.csv'), sep=';', encoding = "ISO-8859-1")
是否有类似参数 "skiprows" 的导出?我在 api documentation for .to_csv.
中找不到
一种可能的解决方案是先用 NaN
s 写入 DataFrame,然后附加原始 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')
或与df1
相同的原始header和此先写,只需要在header数据中没有值|
:
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')
您想从原始文件复制 header 并写入新文件。然后通过将模式设置为 'a'
来附加数据框
with open("my_csv.csv") as f:
header =''
for line in range(0,header_length_in_lines):
header +=f.readline()
with open('my_new_csv.csv','w+') as f:
f.write(header)
df.to_csv('my_new_csv.csv', mode='a', index=False)
在我的 python 脚本中,我正在通过
读取一个 csv 文件df = pd.read_csv('input.csv', sep=';', encoding = "ISO-8859-1", skiprows=2, skipfooter=1, engine='python')
我跳过了 csv 文件中的前两行,因为它们只是我不需要的描述。
导入后,我正在过滤和分离数据。 我想将数据写回 csv 文件,同时具有与以前相同的格式(前两行为空或导入前的描述)。我该怎么做?
目前我正在使用
df.to_csv('output.csv'), sep=';', encoding = "ISO-8859-1")
是否有类似参数 "skiprows" 的导出?我在 api documentation for .to_csv.
中找不到一种可能的解决方案是先用 NaN
s 写入 DataFrame,然后附加原始 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')
或与df1
相同的原始header和此先写,只需要在header数据中没有值|
:
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')
您想从原始文件复制 header 并写入新文件。然后通过将模式设置为 'a'
来附加数据框with open("my_csv.csv") as f:
header =''
for line in range(0,header_length_in_lines):
header +=f.readline()
with open('my_new_csv.csv','w+') as f:
f.write(header)
df.to_csv('my_new_csv.csv', mode='a', index=False)