Перестановка данных с использованием Python Pandas |Создайте столбец на основе повторного индекса и заполните его значением - PullRequest
0 голосов
/ 02 февраля 2019

Перестановка данных Python CSV в строки и другой столбец У меня есть CSV Dtabase, которая содержит имя и список друзей в следующем формате

enter image description here

Ожидаемый вывод, каккак указано ниже: Имя и Значение в одной строке с количеством повторяющихся столбцов в соответствии с повторением имени.

enter image description here

Каков наилучший способ выполнить этовыход

Ответы [ 2 ]

0 голосов
/ 02 февраля 2019

Вы также можете использовать groupby и создать новый Dataframe с from_dict:

new_dict = (df.groupby('Name')
              .apply(lambda x: list(map(lambda x: x, x['Value'])))
              .to_dict())

new_df = pd.DataFrame.from_dict(new_dict, orient='index')

Это даст вам:

           0      1      2
Ajay    C529   C530   None
Djna   A-506  A-507  A-508
Patc2  B-526  B-527  B-528
0 голосов
/ 02 февраля 2019

IIUC вам потребуется df.pivot(), а затем сдвиньте значения влево:

df_new=df.pivot(index='Name',columns='Value',values='Value')\
.apply(lambda x: pd.Series(x.dropna().values), axis=1).fillna(np.nan)
df_new.columns=['value_'+str(i+1) for i in df_new.columns]
print(df_new)

    value_1 value_2 value_3 value_4 value_5 value_6 value_7 value_8 value_9  \
Name                                                                            
Ajay     C529    C530    C531    C532    C533    C534    C535     NaN     NaN   
Djna    A-506   A-507   A-508   A-509   A-510   A-511   A-512   A-513   A-514   
Patc2   B-526   B-527   B-528     NaN     NaN     NaN     NaN     NaN     NaN   

      value_10  
Name            
Ajay       NaN  
Djna     A-515  
Patc2      NaN  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...