我正在尝试读取格式为"1,234.56"的十进制值的csv文件。
我当前的代码如下所示:
filepath = 'original_data'
filename = 'Real_Verbrauch_DE_201501010000_202303042359_Viertelstunde.csv'
dateparse = lambda x: datetime.strptime(x, '%d.%m.%Y')
csv_path = os.path.join(filepath, filename)
df_original = pd.read_csv(
csv_path,
sep = ';',
thousands = '.',
decimal = ',',
parse_dates = ['Datum'],
date_parser = dateparse,
dtype = {
'Gesamt (Netzlast) [MWh] Originalauflösungen': float,
'Residuallast [MWh] Originalauflösungen': float,
'Pumpspeicher [MWh] Originalauflösungen': float
}
)
使用此代码,我得到以下错误:
ValueError: could not convert string to float: '11.118,75'
如果删除dtype-parameter,转换只对某些值有效。
如果可能的话,我希望避免使用replace('.','').replace(',','.')
之类的解决方法,因为这会引入其他问题。
csv文件中行的标题和示例:
Datum;Anfang;Ende;Gesamt (Netzlast) [MWh] Originalauflösungen;Residuallast [MWh] Originalauflösungen;Pumpspeicher [MWh] Originalauflösungen
01.01.2015;00:00;00:15;11.210;9.051,75;123
10.04.2015;18:30;18:45;15.066,75;13.858,25;44,75
我应该如何调整我的代码,使最后三列中的所有值都转换为浮点类型?
1条答案
按热度按时间ghhkc1vu1#
运行代码后,一切都按预期运行。也许您使用的是旧版本的Pandas: