Вот одно решение:
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()
или любой другой способ, который вам нравится.