我正在使用pandas加载一个csv文件,它几乎没有坏行。这意味着在少数行中有一些额外的逗号,这就是熊猫无法加载它的原因。这对我来说很好。我用error_bad_lines=False
来忽略这些行。当pandas忽略这些坏行时,它会在控制台上显示如下消息:
b'Skipping line 3: expected 3 fields, saw 4\n
我想要的是能够加载数据,但在日志文件中记录这个跳过的行号。我阅读了很多关于日志记录的教程,但是当熊猫在加载数据时跳过行号时,找不到一种方法来记录这个自动生成的消息。你知道吗
这是我用来加载文件的简单代码。你知道吗
import pandas as pd
import os
def main():
filename = "test_data3.csv"
data= pd.read_csv(filename,error_bad_lines=False)
print(data.head())
if __name__=="__main__":
main()
这是我使用的样本数据
Col1,Col2,Col3
a,3,g4
b,4,s5,r
c,5,p9
f,6,v4,7
x,65,h5
如您所见,应该跳过第2行和第4行。但需要记录在日志文件中。你知道吗
您可以使用上下文管理器临时拦截对
sys.stderr.write
的调用,并将消息写入文件:如果这不是你想要的,你可能需要在你的问题中添加更多的信息。你知道吗
可以使用重定向将输出重定向到文件doubg:
相关问题 更多 >
编程相关推荐