string - create - pandas to html example
Conversión de una columna dentro del marco de datos pandas de int a cadena (3)
Cambiar el tipo de datos de la columna DataFrame:
A int:
df.column_name = df.column_name.astype(np.int64)
Para str:
df.column_name = df.column_name.astype(str)
Estoy empezando a trabajar con pandas. Tengo un marco de datos en pandas con columnas mixtas de datos int y str. Quiero concatenar las primeras columnas dentro del marco de datos, para hacer eso tengo que convertir la columna int
en str
. Intenté hacer eso así:
mtrx[''X.3''] = mtrx.to_string(columns = [''X.3''])
o así
mtrx[''X.3''] = mtrx[''X.3''].astype(str)
pero en ambos casos no funciona y recibo un error que dice "no puedo concatenar ''str'' y ''int'' objects". Concat para columnas de dos str
está funcionando perfectamente bien.
¡Cualquier ayuda sería muy apreciada! ¡Gracias!
Advertencia : las dos soluciones proporcionadas ( astype () y apply () ) no conservan los valores NULL en las formas nan o None.
import pandas as pd
import numpy as np
df = pd.DataFrame([None,''string'',np.nan,42], index=[0,1,2,3], columns=[''A''])
df1 = df[''A''].astype(str)
df2 = df[''A''].apply(str)
print df.isnull()
print df1.isnull()
print df2.isnull()
Creo que esto se soluciona mediante la implementación de to_string()
In [16]: df = DataFrame(np.arange(10).reshape(5,2),columns=list(''AB''))
In [17]: df
Out[17]:
A B
0 0 1
1 2 3
2 4 5
3 6 7
4 8 9
In [18]: df.dtypes
Out[18]:
A int64
B int64
dtype: object
Convertir una serie
In [19]: df[''A''].apply(str)
Out[19]:
0 0
1 2
2 4
3 6
4 8
Name: A, dtype: object
In [20]: df[''A''].apply(str)[0]
Out[20]: ''0''
Convierte todo el marco
In [21]: df.applymap(str)
Out[21]:
A B
0 0 1
1 2 3
2 4 5
3 6 7
4 8 9
In [22]: df.applymap(str).iloc[0,0]
Out[22]: ''0''