online exercises python pandas machine-learning dataframe series

python - pandas exercises online



¿Es posible anexar Series a filas de DataFrame sin hacer una lista primero? (4)

Tengo algunos datos que intento organizar en un DataFrame en Pandas . Estaba tratando de hacer de cada fila una Series y DataFrame al DataFrame . Encontré una forma de hacerlo agregando la Series a una list vacía y luego convirtiendo la list de la Series en un DataFrame

por ejemplo, DF = DataFrame([series1,series2],columns=series1.index)

Esta list para el paso DataFrame parece ser excesiva. He comprobado algunos ejemplos aquí, pero ninguna de las Series conservó las etiquetas de Index de la Series para usarlas como etiquetas de columna.

Mi largo camino donde las columnas son id_names y las filas son type_names:

¿Es posible anexar Series a filas de DataFrame sin hacer una lista primero?

#!/usr/bin/python DF = DataFrame() for sample,data in D_sample_data.items(): SR_row = pd.Series(data.D_key_value) DF.append(SR_row) DF.head() TypeError: Can only append a Series if ignore_index=True or if the Series has a name

Entonces lo intenté

DF = DataFrame() for sample,data in D_sample_data.items(): SR_row = pd.Series(data.D_key_value,name=sample) DF.append(SR_row) DF.head()

Marco de datos vacío

Intentado Insertar una fila en el marco de datos de pandas Aún obteniendo un marco de datos vacío: /

Estoy tratando de hacer que la Serie sea la fila, donde el índice de la Serie se convierte en las etiquetas de columna del Marco de Datos.


Algo como esto podría funcionar ...

mydf.loc[''newindex''] = myseries

Aquí hay un ejemplo donde lo usé ...

stats = df[[''bp_prob'', ''ICD9_prob'', ''meds_prob'', ''regex_prob'']].describe() stats Out[32]: bp_prob ICD9_prob meds_prob regex_prob count 171.000000 171.000000 171.000000 171.000000 mean 0.179946 0.059071 0.067020 0.126812 std 0.271546 0.142681 0.152560 0.207014 min 0.000000 0.000000 0.000000 0.000000 25% 0.000000 0.000000 0.000000 0.000000 50% 0.000000 0.000000 0.000000 0.013116 75% 0.309019 0.065248 0.066667 0.192954 max 1.000000 1.000000 1.000000 1.000000 medians = df[[''bp_prob'', ''ICD9_prob'', ''meds_prob'', ''regex_prob'']].median() stats.loc[''median''] = medians stats Out[36]: bp_prob ICD9_prob meds_prob regex_prob count 171.000000 171.000000 171.000000 171.000000 mean 0.179946 0.059071 0.067020 0.126812 std 0.271546 0.142681 0.152560 0.207014 min 0.000000 0.000000 0.000000 0.000000 25% 0.000000 0.000000 0.000000 0.000000 50% 0.000000 0.000000 0.000000 0.013116 75% 0.309019 0.065248 0.066667 0.192954 max 1.000000 1.000000 1.000000 1.000000 median 0.000000 0.000000 0.000000 0.013116


Intenta usar este comando. Vea el ejemplo dado abajo:

df.loc[len(df)] = [''Product 9'',99,9.99,8.88,1.11] df


Tal vez una forma más fácil sería agregar pandas.Series a pandas.DataFrame con ignore_index=True Argumento ignore_index=True a DataFrame.append() . Ejemplo -

DF = DataFrame() for sample,data in D_sample_data.items(): SR_row = pd.Series(data.D_key_value) DF = DF.append(SR_row,ignore_index=True)

Demo

In [1]: import pandas as pd In [2]: df = pd.DataFrame([[1,2],[3,4]],columns=[''A'',''B'']) In [3]: df Out[3]: A B 0 1 2 1 3 4 In [5]: s = pd.Series([5,6],index=[''A'',''B'']) In [6]: s Out[6]: A 5 B 6 dtype: int64 In [36]: df.append(s,ignore_index=True) Out[36]: A B 0 1 2 1 3 4 2 5 6

Otro problema en su código es que DataFrame.append() no está en su lugar, devuelve el marco de datos adjunto, debe asignarlo de nuevo a su marco de datos original para que funcione. Ejemplo -

DF = DF.append(SR_row,ignore_index=True)

Para preservar las etiquetas, puede usar su solución para incluir el nombre de la serie junto con la asignación del marco de datos adjunto de nuevo a DF . Ejemplo -

DF = DataFrame() for sample,data in D_sample_data.items(): SR_row = pd.Series(data.D_key_value,name=sample) DF = DF.append(SR_row) DF.head()


DataFrame.append() no modifica el DataFrame en su lugar. df = df.append(...) hacer df = df.append(...) si desea volver a df = df.append(...) a la variable original.