Pandas DataFrame al diccionario con tuplas como clave y valores -- python campo con pandas campo con dictionary campo con dataframe camp Relacionados El problema

Pandas DataFrame to Dictionary with Tuples as Key and Values


1
vote

problema

Español

Necesito ayuda para hacer lo siguiente:

Tengo un archivo CSV como lo siguiente, cargado en un Frame 'DF'. Hay varias regiones, diferentes valores para la memoria, VCPU y almacenamiento correspondientes a cada 'Nombre'. Hay 1700 filas en este flujo de datos.

El flujo de datos con los valores de CSV cargados en

Necesito crear un diccionario que tenga lo siguiente:

La tecla es una tupla con dos elementos: Nombre y región

El valor del diccionario es una tupla: costo a pedido de Windows y Linux a pedido de la demanda

En última instancia, quiero crear un programa que hace lo siguiente: El usuario ingresa a una cinta CPU y RAM y almacenamiento, y el programa se clasificará a través de los datos y eliminará el nombre, así como los precios de Windows y Linux para ese procesador si hay una coincidencia, o si no, al finalizará el procesador más cercano a los valores ingresados. ¡Gracias!

  Name    Region  API Memory  vCPUs   Storage Linux   Windows 0   M1 General Purpose Small    US West - NorCal    m1.small    1.7 GiB 1 vCPUs 160 GiB $0.047000 hourly    $0.078000 hourly 1   M1 General Purpose Medium   US West - NorCal    m1.medium   3.75 GiB    1 vCPUs 410 GiB $0.095000 hourly    $0.157000 hourly 2   M1 General Purpose Large    US West - NorCal    m1.large    7.5 GiB 2 vCPUs 840 GiB $0.190000 hourly    $0.314000 hourly 3   M1 General Purpose Extra Large  US West - NorCal    m1.xlarge   15.0 GiB    4 vCPUs 1680 GiB    $0.379000 hourly    $0.627000 hourly 4   C1 High-CPU Medium  US West - NorCal    c1.medium   1.7 GiB 2 vCPUs 350 GiB $0.148000 hourly    $0.228000 hourly   
Original en ingles

I need help doing the following:

I have a CSV file as the following, loaded into a dataframe 'df'. There are multiple regions, different values for Memory, vCPUs and Storage corresponding to each 'Name'. There are 1700 rows in this dataframe.

The dataframe with the CSV values loaded in

I need to create a dictionary that has the following:

Key is a tuple with two elements: Name, and Region

Value of the dictionary is a tuple: Windows On-demand cost and Linux On demand cost

Ultimately, I want to create a program which does the following: The user inputs a certain CPU and Ram and Storage, and the program will sort through the data and pull the Name, as well as Windows and Linux prices for that processor if there is a match, or if not, will pull the processor closest to the inputted values. Thanks!

Name    Region  API Memory  vCPUs   Storage Linux   Windows 0   M1 General Purpose Small    US West - NorCal    m1.small    1.7 GiB 1 vCPUs 160 GiB $0.047000 hourly    $0.078000 hourly 1   M1 General Purpose Medium   US West - NorCal    m1.medium   3.75 GiB    1 vCPUs 410 GiB $0.095000 hourly    $0.157000 hourly 2   M1 General Purpose Large    US West - NorCal    m1.large    7.5 GiB 2 vCPUs 840 GiB $0.190000 hourly    $0.314000 hourly 3   M1 General Purpose Extra Large  US West - NorCal    m1.xlarge   15.0 GiB    4 vCPUs 1680 GiB    $0.379000 hourly    $0.627000 hourly 4   C1 High-CPU Medium  US West - NorCal    c1.medium   1.7 GiB 2 vCPUs 350 GiB $0.148000 hourly    $0.228000 hourly 
</div
           
         
         

Lista de respuestas

1
 
vote

Aquí está la parte que crea el diccionario

  tempDict = {}  for i in df.index:      key = (df.at[i, 'Name'] ,df.at[i, 'Region']) #Rename columns accordingly     value = (df.at[i, 'Windows On-demand cost'] ,df.at[i, 'Linux On demand cost']) #Rename columns accordingly      dictionary = {key: value}     tempDict.update(dictionary)  print(tempDict)   
 

Here is the part that creates the dictionary

tempDict = {}  for i in df.index:      key = (df.at[i, 'Name'] ,df.at[i, 'Region']) #Rename columns accordingly     value = (df.at[i, 'Windows On-demand cost'] ,df.at[i, 'Linux On demand cost']) #Rename columns accordingly      dictionary = {key: value}     tempDict.update(dictionary)  print(tempDict) 
</div
 
 
 
 
0
 
vote

Intentaría algo como esto:

  outdict = {k: (gdf['Windows On Demand cost'].item(),                 gdf['Linux On Demand cost'].item())            for k, gdf in df.groupby(['Name', 'Region'])}   
 

I would try something like this:

outdict = {k: (gdf['Windows On Demand cost'].item(),                 gdf['Linux On Demand cost'].item())            for k, gdf in df.groupby(['Name', 'Region'])} 
</div
 
 

Relacionados problema

1  R - Quiero que el nombre de la línea de datos sea determinada por un argumento de línea de comandos  ( R i want data frame name to be determined by a command line argument ) 
Quiero que se determine un nombre de marco de datos por un argumento de línea de comandos. Lo siguiente debería dejarlo claro lo que estaba tratando de hacer ...

1  ¿Puedes usar Pandas Groupby para agrupar filas, determinado sumando un valor de columna?  ( Can you use pandas groupby to group rows determined by summing a column value ) 
Me gustaría agrupar filas en un contexto de datos por valores de una columna. El ejemplo dado a continuación sería si estuviera agrupando los valores de 'Numb...

1  Pandas DataFrame al diccionario con tuplas como clave y valores  ( Pandas dataframe to dictionary with tuples as key and values ) 
Necesito ayuda para hacer lo siguiente: Tengo un archivo CSV como lo siguiente, cargado en un Frame 'DF'. Hay varias regiones, diferentes valores para la me...

1  Cambio de entradas en un fotograma de datos dependiendo de si están entre dos valores o por debajo de un valor  ( Changing entries in a dataframe depending on whether they are between two values ) 
Tengo un conteo de datos con la distancia en una columna y puntuaciones en otra columna, por ejemplo. Distance Scores 1000. 1 1500. 1 etc. Teng...

12  Deshacerse de las filas con atributos duplicados en r  ( Get rid of rows with duplicate attributes in r ) 
Tengo un gran contorno de datos con columnas tales como: ID, time, OS, IP Cada fila de ese flujo de datos corresponde a una entrada. Dentro de ese prot...

0  Fusionar con el minuto más cercano usando Pandas  ( Merge with the nearest minute using pandas ) 
Simplemente quiero fusionar dos cuadros de datos dentro de ± 1 min. AQUÍ NAME_DF con el conjunto de datos de muestra: Name Date A 2/19/2019 17:1...

96  Cómo explotar una lista dentro de una celda de datos de datos en filas separadas  ( How to explode a list inside a dataframe cell into separate rows ) 
Estoy buscando convertir una célula PANDAS que contiene una lista en filas para cada uno de esos valores. Entonces, toma esto: Si me gustaría desempaca...

1  Filtrando cada columna de un marco de datos un PUT NA para valores inigualables  ( Filtering each column of a data frame an put na for unmatched values ) 
Tengo una tabla de la siguiente manera: [,1] [,2] [,3] [,4] [,5] [1,] a A 0.06 0.31 -1.5 [2,] b B -0.75 0.2 0.02 [3,] ...

2  Cambiar filas en pandas  ( Change rows in pandas ) 
Tengo una matriz en marco de datos de Pandas print dfMatrix 0 1 2 3 4 0 10000 10 8 11 10 1 10 100000 ...

4  Usando RBIND () para combinar múltiples marcos de datos en uno de los datos más grandes.Frame dentro de LAPLY ()  ( Using rbind to combine multiple data frames into one larger data frame within ) 
Estoy usando R-Studio 0.99.491 y R versión 3.2.3 (2015-12-10). Soy un relative Newbie a R, y apreciaría algo de ayuda. Estoy haciendo un proyecto donde estoy ...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos