df = pd.read_csv("your_file.csv", nrows=1) # Just take the first row to extract the columns' names
col_str_dic = {column:str for column in list(df)}
df = pd.read_csv("your_file.csv", dtype=col_str_dic) # Now you can read the compete file
me@ubuntu:~$ python test_dataframe.py
project_name project_id
0 Some Project 000245
1 Another Project 000478
me@ubuntu:~$
在帮助他人时更新:
要将所有列作为str,可以这样做(从注释中):
pd.read_csv('sample.csv', dtype = str)
要将大多数或选择性列作为str,可以执行以下操作:
# lst of column names which needs to be string
lst_str_cols = ['prefix', 'serial']
# use dictionary comprehension to make dict of dtypes
dict_dtypes = {x : 'str' for x in lst_str_cols}
# use dict on dtypes
pd.read_csv('sample.csv', dtype=dict_dtypes)
以下是一个简短、健壮且完全有效的解决方案:
只需定义变量名和所需数据类型之间的映射(字典):
将该映射与
pd.read_csv()
一起使用:瞧
如果您有很多列,但不知道哪些列包含可能遗漏的前导零,或者您可能只需要自动化代码。您可以执行以下操作:
你也可以这样做:
通过这样做,您将所有列都作为字符串,并且不会丢失任何前导零
正如Lev Landau在this question/answer中指出的那样,对于
read_csv
函数中的某个列使用converters
选项可能是一个简单的解决方案您可以在pandas.io.parsers.read_csvdocumentation中参考
read_csv
功能的更多选项假设我有csv文件
projects.csv
,如下所示:例如,下面的代码正在修剪前导零:
结果:
解决方案代码示例:
所需结果:
在帮助他人时更新:
要将所有列作为str,可以这样做(从注释中):
要将大多数或选择性列作为str,可以执行以下操作:
相关问题 更多 >
编程相关推荐