我有一个数据文件apples.csv,它有以下标题:
"id","str1","str2","str3","num1","num2"
Run Code Online (Sandbox Code Playgroud)
我把它读成一个带有pandas的数据框:
apples = pd.read_csv('apples.csv',delimiter=",",sep=r"\s+")
Run Code Online (Sandbox Code Playgroud)
然后我做了一些事情,但忽略了(我把它全部注释掉了,我的整体问题仍然存在,所以说这些东西在这里无关紧要).
然后我保存出来:
apples.to_csv('bananas.csv',columns=["id","str1","str2","str3","num1","num2"])
Run Code Online (Sandbox Code Playgroud)
现在,看看bananas.csv,它的标题是:
,id,str1,str2,str3,num1,num2
Run Code Online (Sandbox Code Playgroud)
没有更多的引号(我不关心它,因为它不会影响文件中的任何内容),然后是那个引导逗号.随后的行现在有一个额外的列,因此它保存了7列.但如果我这样做:
print(len(apples.columns))
Run Code Online (Sandbox Code Playgroud)
在保存之前,它显示6列...
我通常使用Java/Perl/R,而且对Python,尤其是Pandas的经验不足,所以我不确定这是"是的,只是这样做"或问题是什么 - 但我花了很长时间才想到这个,通过搜索找不到它.
我怎样才能不做逗号的前置,也许同样重要 - 它为什么要这样做?