【发布时间】:2021-08-27 02:18:44
【问题描述】:
当我向read_csv 提供正则表达式sep 参数时,例如下面示例中的[,\t],我得到读取为"" 的NaN 值。我怀疑这可能是一个错误,但正在寻找有关解决方法的建议或有人解释为什么它不是错误。这似乎只有在 DataFrame 只有一列时才会发生
import numpy as np
import pandas as pd
file_path = "temp.csv"
df = pd.DataFrame({"x": [np.nan, 1]})
df.to_csv(file_path, index=False)
df1 = pd.read_csv(file_path, sep=',')
df2 = pd.read_csv(file_path, sep='[,\t]')
print(f"-----------\ndf1\n{df1}")
print(f"-----------\ndf2\n{df2}")
输出
-----------
df1
x
0 NaN
1 1.0
-----------
df2
x
0 ""
1 1.0
【问题讨论】:
-
这不是错误,这是正确的行为。来自文档:“请注意,正则表达式分隔符容易忽略引用的数据。” (对于“python”引擎)
标签: python regex pandas dataframe