新手想要通过以上方式将一个包含120gb数据的zip文件中的csv转换成HDF5,所用的数据为纽约汽车(https://www1.nyc.gov/site/tlc/about/tlc-trip-record-data.page),但是在进行转换的时候发现每一个csv的columns名称不太一样,主要区别在大小写、单词缺少上,最终导致以下错误ValueError: Usecols do not match columns, columns expected but not found: ['store_and_fwd_flag', 'fare_amount', 'vendor_id','dropoff_datetime', 'surcharge','pickup_latitude', 'mta_tax', 'tip_amount', 'pickup_datetime', 'pickup_longitude', 'tolls_amount','passenger_count', 'rate_code', 'dropoff_latitude', 'payment_type','dropoff_longitude', 'trip_distance', 'total_amount']
想请问一下有没有解决办法,主要每个csv文件都太大,没办法一一打开修改排头。
万分感谢
问题点: columns是不固定的.
分析思路: 数据不统一,需要做个清洗的处理,包括排头的大小写统一和筛选.
处理流程:
预处理:每个CSV都只取第一行,看看所有的排头是什么情况
1.读取数据: 先全部读取数据(默认将第一行的数据作为column)
2.columns标准化处理: 获取DF的columns值, 作标准化的转换(大小写处理),再赋值回DF(DF.column = new_column)
3.筛选数据: .columns标准化后,就不会出现取值的错误了. NEW_DF = DF[[columns]]