我找到了许多有关Errno 22的答案,但没有特定于熊猫的内容,也没有关于仅在覆盖时不写入的情况(初始写入成功)。
因此,我成功使用以下python脚本重新创建了该错误:
<body>
<header>
<ul class="nav">
<li><a href="homepage.html">Home</a></li>
<li><a href="#">About</a></li>
<li><a href="#">Contact</a></li>
<li><a href="#">Services</a></li>
<li id="log"><a href="index.html">Login</a></li>
</ul>
</header>
</body>
因此,对to_csv的首次调用将写入以下文件
import pandas as pd
print('path:')
path = input()
data = pd.DataFrame(data=[1,2,3], columns=['index'])
data.to_csv(path, encoding='utf-8', index=False)
data = data.append(pd.DataFrame(data=[4,5,6], columns=['index']))
data.to_csv(path, encoding='utf-8', index=False)
但是第二次调用to_csv会导致错误:
index
1
2
3
非常感谢您的帮助:)
答案 0 :(得分:0)
您可以使用here中记录的DataFrame.update
功能。它允许覆盖数据:
data = pd.DataFrame(data=[1,2,3], columns=['index'])
data.to_csv(path, encoding='utf-8', index=False)
newData = pd.DataFrame(data=[4,5,6], columns=['index'])
data.update(newData, join='left', overwrite=True, filter_func=None, raise_conflict=False)
data.to_csv(path, encoding='utf-8', index=False)
答案 1 :(得分:0)
我发现的解决方案是使用os.remove(path):
import pandas as pd
import os
print('path:')
path = input()
data = pd.DataFrame(data=[1,2,3], columns=['index'])
data.to_csv(path, encoding='utf-8', index=False)
if(os.path.exists(path)):
os.remove(path)
data = data.append(pd.DataFrame(data=[4,5,6], columns=['index']))
data.to_csv(path, encoding='utf-8', index=False)
可惜to_csv没有覆盖模式