Как изменить порядок CSV?

#python #excel

#python #excel

Вопрос:

Как изменить порядок CSV?

Я пытаюсь преобразовать этот набор данных в годы, чтобы:

 country1 | price | year1
country2 | price | year1
country1 | price | year2
country2 | price | year2
  

становится:

          | year1 | year2 
country1 | price | price
country2 | price | price
  

https://raw.githubusercontent.com/TheEconomist/big-mac-data/master/source-data/big-mac-source-data.csv

Как я могу это сделать?

Комментарии:

1. пакет python pandas позволяет вам манипулировать данными: читать csv, обрабатывать его и сохранять как csv. Возможно, вы захотите прочитать о groupby команде для ваших нужд

Ответ №1:

Попробуйте (я использовал данные из вашей ссылки и предположил, какие столбцы вам нужны):

 import pandas as pd

df = pd.read_csv('data.csv',
                 usecols=['name', 'local_price', 'date'],
                 index_col='name')
df.sort_values(by=['name', 'date'], inplace=True)
df = df.pivot(columns='date', values='local_price')
df.to_csv('data_out.csv')
  

Ответ №2:

Попробуйте df.pivot() :

 df.pivot(index='Country', columns='Year', values='Price')
  

Ответ №3:

Вы можете сделать это с помощью сводной таблицы pandas:

 import pandas as pd
pd.pivot_table(index='Country', columns='Year', values='Price')
  

Вывод:

   year    year1  year2
country
country1  price  price
country2  price  price