Как сохранить полный код в переменной - PullRequest
1 голос
/ 06 августа 2020

Как сохранить мой полный код ниже в переменной? Потому что я хотел бы использовать эту переменную в pd.DataFrame , чтобы мой результат был в табличном формате.

import pandas as pd

User_info = {
    1: ["Rita","delhi",47,47,38],
    2: ["Sita","DElhi",49,28,40],
    3: ["geeta","Mumbai",38,50,38],
    4: ["Geeta","MUMBAI",28,26,44],
    5: ["GEETA","CHENNAI",30,36,36],
    6: ["SITA","chennai",37,28,34]
}

print ("{:<10} {:<10} {:<20} {:<20} {:<20}".format('Name', 'Location', 'W1', 'W2', 'W3')) 

for key, value in User_info.items(): 
    name, location, w1, w2, w3 = value 
    print ("{:<10} {:<10} {:<20} {:<20} {:<20}".format(name.upper(), location.upper(), w1*1.609, w2*1.609, w3*1.609))

С уважением,

Bharath Vikas

Ответы [ 2 ]

1 голос
/ 06 августа 2020

Вот одно решение:

import pandas as pd

User_info = {
    1: ["Rita","delhi",47,47,38],
    2: ["Sita","DElhi",49,28,40],
    3: ["geeta","Mumbai",38,50,38],
    4: ["Geeta","MUMBAI",28,26,44],
    5: ["GEETA","CHENNAI",30,36,36],
    6: ["SITA","chennai",37,28,34]
}

df = pd.DataFrame([
        [name.upper(), location.upper(), w1*1.609, w2*1.609, w3*1.609]
        for name, location, w1, w2, w3 in User_info.values()
    ], columns=['Name', 'Location', 'W1', 'W2', 'W3'])

Что происходит:

ваш for l oop преобразован в понимание списка:

# here, table will be a 2d array [][] (list of table rows)
table = [
    [name.upper(), location.upper(), w1*1.609, w2*1.609, w3*1.609]
    for name, location, w1, w2, w3 in User_info.values()
]

Это в основном перебирает ваши значения User_info и применяет преобразование для каждой строки. Результат сохраняется в 2-мерном массиве.

Затем этот массив используется для создания pandas фрейма данных. Аргумент columns позволяет вам давать явные имена каждому столбцу фрейма данных.

Вот полученный df:

    Name Location      W1      W2      W3
0   RITA    DELHI  75.623  75.623  61.142
1   SITA    DELHI  78.841  45.052  64.360
2  GEETA   MUMBAI  61.142  80.450  61.142
3  GEETA   MUMBAI  45.052  41.834  70.796
4  GEETA  CHENNAI  48.270  57.924  57.924
5   SITA  CHENNAI  59.533  45.052  54.706

для экспорта, вы можете использовать df.to_csv() или любой другой способ, который вам нравится.

0 голосов
/ 06 августа 2020

Вы можете использовать эту простую функцию применения, чтобы сделать то же самое -

#Original data as a dataframe
df = pd.DataFrame(User_info.values(), columns=['name','location','w1','w2','w3'])

#Function with all the transformations
def transform(row):
    output = pd.Series([row['name'].upper(), 
                        row['location'].upper(), 
                        row['w1']*1.609, 
                        row['w2']*1.609, 
                        row['w3']*1.609], index=row.index)
    
    return output


#apply on dataframe
new_df = df.apply(transform, axis=1)
print(new_df)
    name location      w1      w2      w3
0   RITA    DELHI  75.623  75.623  61.142
1   SITA    DELHI  78.841  45.052  64.360
2  GEETA   MUMBAI  61.142  80.450  61.142
3  GEETA   MUMBAI  45.052  41.834  70.796
4  GEETA  CHENNAI  48.270  57.924  57.924
5   SITA  CHENNAI  59.533  45.052  54.706
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...