Панды to_csv преобразует столбец str в int (или с плавающей точкой)

Правильный путь не должен заканчиваться на «/», я ошибался, что вызвало проблему

Правильный путь:

http: //www.springframework .org / schema / context http://www.springframework.org/schema/context/spring-context.xsd

0
задан jpp 16 January 2019 в 12:57
поделиться

2 ответа

Вы можете установить параметр quoting в to_csv, взгляните на этот пример:

a = [['a', '1.2', '4.2'], ['b', '70', '0.03'], ['x', '5', '0']]
df = pd.DataFrame(a)
df.to_csv('test.csv', sep='\t', quoting=csv.QUOTE_NONNUMERIC)

Созданный файл CSV:

""  0   1   2
0   "a" "1.2"   "4.2"
1   "b" "70"    "0.03"
2   "x" "5" "0"

Вы также можете установить символ кавычки с параметром quotechar, например quotechar="'" будет производить этот вывод:

''  0   1   2
0   'a' '1.2'   '4.2'
1   'b' '70'    '0.03'
2   'x' '5' '0'
0
ответ дан farkas 16 January 2019 в 12:57
поделиться

Один из способов - хранить ваши типы отдельно и загружать их вместе с вашими данными:

df = pd.DataFrame({0: ['1', '1', '1'],
                   1: [2, 3, 4]})

df.dtypes.to_frame('types').to_csv('types.csv')
df.to_csv('file.csv', index=False)

df_types = pd.read_csv('types.csv')['types']
df = pd.read_csv('file.csv', dtype=df_types.to_dict())

print(df.dtypes)
# 0    object
# 1     int64
# dtype: object

Возможно, вы захотите рассмотреть Pickle, чтобы гарантировать, что ваш фрейм данных будет неизменным:

df.to_pickle('file.pkl')
df = pd.read_pickle('file.pkl')

print(df.dtypes)
# 0    object
# 1     int64
# dtype: object
0
ответ дан jpp 16 January 2019 в 12:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: