У меня есть датафрейм, как показано ниже:
import pandas as pd
import numpy as np
df = pd.DataFrame([{'int':1, 'float':1.1, 'str':'aaa'}, {'int':None, 'float':None, 'str':None}])
df.fillna('', inplace=True)
Мы хотим вывести df в csv, как показано ниже (используя '# | #' в качестве разделителя полей), сохраняя int как int:
int#|#float#|#str
1#|#1.1#|#aaa
#|##|#
Как мне этого добиться?
Обходное решение работает ниже, но мой DataFrame огромен, и мне интересно, есть ли лучший / более эффективный способ:
df['int'] = df['int'].apply(lambda x: ('%.0f' % x) if x != '' else x)
np.savetxt('test.txt', df[['int', 'float', 'str']].values, fmt='%s', delimiter='#|#', newline="\n")