Pandas DataFrame到CSV

app*_*ver 2 python csv dataframe pandas

我想将pandas数据帧附加到CSV文件的末尾.棘手的部分是当我追加行时,有些时候列可能会有所不同.我想要这样的代码

a = pd.DataFrame([[1, 2]], columns= ["one", "two"])
with open("learn.csv", "w") as f:
    a.to_csv(f, header=True)

a = pd.DataFrame([[1, 2]], columns= ["one", "three"])
with open("learn.csv", "a") as f:
    a.to_csv(f)
Run Code Online (Sandbox Code Playgroud)

生成如下所示的CSV文件:

one, two, three
1, 2, None
1, None, 2
Run Code Online (Sandbox Code Playgroud)

alk*_*lko 7

您必须在保存到csv之前连接数据帧,因为您必须知道所有生成的列才能正确保存数据,这对于每个数据帧都是未知的.以下将做:

>>> from StringIO import StringIO
>>> buf = StringIO()
>>> a = pd.DataFrame([[1, 2]], columns= ["one", "two"])
>>> b = pd.DataFrame([[1, 2]], columns= ["one", "three"])
>>> pd.concat([a, b]).to_csv(buf, index=None, na_rep='None')
>>> print buf.getvalue()
one,three,two
1,None,2.0
1,2.0,None
Run Code Online (Sandbox Code Playgroud)