我正在使用pd.read_csv()
加载可能有未知大小写的列名的文件。使用lambda for usecols
参数,如here所述,我可以选择加载哪些列,而不管情况如何,并且使用来自here的方法,我可以像这样访问这些列:
df = pd.read_csv(myfile, usecols=lambda x: x.lower() in ['foo', 'bar'])
df.columns = df.columns.str.lower()
print(df['foo']) # Works no matter which column name case is in the file
但是在这种情况下,是否有办法使用dtypes
/converters
参数?
我有两个变通的想法:
1.将所有数据作为字符串加载,并在稍后的代码中进行转换。这看起来不太好用。
1.打开文件只是为了读取头文件,分析它,然后在了解列名实际情况的情况下再次打开文件(将其 Package 为函数)。
还有其他方法吗?
1条答案
按热度按时间iyr7buue1#
您可以只读入第一行数据来抓取列。我建议通过内置的
csv
模块,甚至使用pandas
来实现这一点,因为它们都可以轻松处理报价。使用
pandas
,你可以做这样的事情: