0
我需要從固定寬度的平面文件讀入數據幀。這是一個對性能敏感的操作。轉換器函數執行後,read_fwf()/ read_csv()/ read_table()中的na_values是否會被轉換?
我想要從列值中刪除所有空白空白。在刪除空白符之後,我想將空白字符串轉換爲NaN或None值。這裏有兩個想法我有:
pd.read_fwf(path, colspecs=markers, names=columns,
converters=create_convert_dict(columns))
def create_convert_dict(columns):
convert_dict = {}
for col in columns:
convert_dict[col] = null_convert
return convert_dict
def null_convert(value):
value = value.strip()
if value == "":
return None
else:
return value
或:
pd.read_fwf(path, colspecs=markers, names=columns, na_values='',
converters=create_convert_dict(columns))
def create_convert_dict(columns):
convert_dict = {}
for col in columns:
convert_dict[col] = col_strip
return convert_dict
def col_strip(value):
return value.strip()
顯然,第二個選項取決於轉換器(它剝離了空白)na_values之前評估。
我想知道如果第二個會工作。我很好奇的原因是因爲保留NaN的Null值與None無關。
我也對任何其他建議,我可能會執行此操作(剝離空白,然後將空白字符串轉換爲NaN)。
我目前無法訪問安裝有熊貓的計算機,這就是爲什麼我無法自己測試此功能的原因。
感謝