#python #dataframe
Вопрос:
Учитывая фрейм данных:
Имя | Тип | ценность |
---|---|---|
xx | a | 1 |
yy | b | 2 |
как мне перенести его в:
Имя | a | b |
---|---|---|
xx | 1 | 0 |
yy | 0 | 2 |
Только придумайте идею, в которой я создал новый столбец, и назначьте значение на основе столбца «тип».
df.loc[df.тип == ‘a’, ‘a’] = df[‘значение’]
затем заполните na
повторяйте до тех пор, пока не будут обработаны все типы.
Я чувствую, что должно быть лучшее решение, просто не могу найти никакой ссылки. Пожалуйста, какой-нибудь намек?
Ответ №1:
Вы, наверное, хотите чего-то подобного
import pandas as pd
df = pd.read_csv('data.csv')
df = df.pivot(index='type', columns='name', values='value').rename_axis(None)
df = df.transpose().fillna(0).astype(int).reset_index()
print(df)
С принтами
name a b
0 xx 1 0
1 yy 0 2
csv, который я использовал
name,type,value
xx,a,1
yy,b,2
Комментарии:
1. Спасибо!! pivot-это тот, кого я ищу!!