[英]Remove leading comma in header when using pandas to_csv
默認情況下 to_csv 寫一個 CSV 像
,a,b,c
0,0.0,0.0,0.0
1,0.0,0.0,0.0
2,0.0,0.0,0.0
但我希望它這樣寫:
a,b,c
0,0.0,0.0,0.0
1,0.0,0.0,0.0
2,0.0,0.0,0.0
我如何實現這一目標? 我不能設置index=False
因為我想保留索引。 我只想刪除前導逗號。
df = pd.DataFrame(np.zeros((3,3)), columns = ['a','b','c'])
df.to_csv("test.csv") # this results in the first example above.
可以先只寫沒有索引的列,然后在追加模式下寫沒有標題的數據:
df = pd.DataFrame(np.zeros((3,3)), columns = ['a','b','c'], index=list('XYZ'))
pd.DataFrame(columns=df.columns).to_csv("test.csv", index=False)
#alternative for empty df
#df.iloc[:0].to_csv("test.csv", index=False)
df.to_csv("test.csv", header=None, mode='a')
df = pd.read_csv("test.csv")
print (df)
a b c
X 0.0 0.0 0.0
Y 0.0 0.0 0.0
Z 0.0 0.0 0.0
只需為您的索引設置一個名稱: df.index.name = 'blah'
。 此名稱將作為名字出現在標題中。
import numpy as np
import pandas as pd
df = pd.DataFrame(np.zeros((3,3)), columns = ['a','b','c'])
df.index.name = 'my_index'
print(df.to_csv())
產量
my_index,a,b,c
0,0.0,0.0,0.0
1,0.0,0.0,0.0
2,0.0,0.0,0.0
但是,如果(根據您的評論)您希望在標題中有 3 個以逗號分隔的名稱,而在 csv 的行中有 4 個以逗號分隔的值,則您必須手工制作它。 但是它不符合任何 csv 標准格式。
或者,嘗試重置索引,使其成為數據框中的一列,名為index 。 這也適用於多個索引。
df = df.reset_index()
df.to_csv('output.csv', index = False)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.