我已经阅读了pandas.read_csv
和pyspark.sql.DataFrameReader.csv
文档,而且PySpark端似乎没有doublequote
参数,因此使用转义字符和加倍的熊猫对字段内的引号字符进行了转义用引号字符表示qoute字符在字段内。
这可以通过在doubleqoute=False
中设置参数escapechar='\\'
和pandas.to_csv
并在multiLine=True
中设置参数pyspark.sql.DataFrameReader.csv
来解决。
但是,在我将这些参数设置为pandas.to_csv
之后,然后尝试使用相同的参数来pandas.read_csv
。我收到错误消息,显示当期望3个字段时,该行有4个字段。
1242,"I see him, I know him \",an_username
1243,"I think I'm good now",another_username
我认为发生该错误的原因是,第一行的第二个字段包含\
作为最后一个字符,而大熊猫将其读取为转义字符"
,并认为第二个字段不是到此为止。除了删除\
字符之外,还有什么方法可以解决此问题?
这是获取错误的示例脚本
import pandas as pd
from io import StringIO
f = StringIO()
pd.DataFrame({'class':['y','y','n'],
'text':['I am fine','I saw him, I knew him \\','I think, I am good now'],
'value':['username','an_username','another_username']})\
.to_csv(f,doublequote=False,escapechar='\\',index=False)
f.seek(0)
print(f.read())
f.seek(0)
pd.read_csv(f,doublequote=False,escapechar='\\')
答案 0 :(得分:0)
我尝试了同样的方法,但是没有遇到这个问题。请检查以下尝试的代码
import pandas as pd
data = pd.read_csv('c.csv')
print(data)
df = pd.DataFrame(data)
print(df)
df.to_csv('d.csv', doublequote=False)
data_1 = pd.read_csv('d.csv')
print(data_1)
以上代码的输出为:
Empty DataFrame
Columns: [1242, I see him, I know him, True]
Index: []
Empty DataFrame
Columns: [1242, I see him, I know him, True]
Index: []
Empty DataFrame
Columns: [Unnamed: 0, 1242, I see him, I know him, True]
Index: []
希望,这可能会对您有所帮助。