объединить два столбца фрейма данных, используя панд - PullRequest
0 голосов
/ 16 октября 2019

Я новичок в разработке на Python. Здесь у меня есть следующий фрейм данных, который

Document_ID OFFSET  PredictedFeature  word

    0         0            2000       Mark
    0         8            2000       Bob
    0         16           2200       AL
    0         23           2200       NS
    0         30           2200       GK
    1          0            2100      sandy
    1          5            2100      Rohan
    1          7            2100      DV

Здесь DOcument ID - это ключ, который вы можете сказать I.

Здесь я пытаюсь сделать то, что создаю файл, в котором я будуувидеть результат как

mark 2000, Bob 2000, AL 2200, NS 2200, GK 2200, sandy 2100, 2100 Rohan, 2100 DV

Я пытался использовать группу с помощью

df = df.groupby('Document_ID').agg(lambda x: ','.join(x))
for name in df.index:
    print name
    print df.loc[name]

, также я пытаюсь сохранить ее в текстовом или CSV-формате.

Может любойпомочь мне с этим?

1 Ответ

0 голосов
/ 16 октября 2019

Используйте DataFrame.stack:

new_df=df[['word','PredictedFeature']].stack().to_frame().T
new_df.columns=new_df.columns.droplevel(0)
print(new_df)

   word PredictedFeature word PredictedFeature word PredictedFeature word  \
0  Mark             2000  Bob             2000   AL             2200   NS   

  PredictedFeature word PredictedFeature   word PredictedFeature   word  \
0             2200   GK             2200  sandy             2100  Rohan   

  PredictedFeature word PredictedFeature  
0             2100   DV             2100  

, но если вы хотите сохранить остальную информацию, лучше использовать pivot_table

new_df=df.pivot_table(columns=['word','PredictedFeature'],index='Document_ID',values='OFFSET',fill_value=0)
print(new_df)

word               AL  Bob   DV   GK Mark   NS Rohan sandy
PredictedFeature 2200 2000 2100 2200 2000 2200  2100  2100
Document_ID                                               
0                  16    8    0   30    0   23     0     0
1                   0    0    7    0    0    0     5     0

чтобы сохранить его вам нужно DataFrame.to_csv:

new_df.to_csv('mycsv.csv')

если это мультииндекс, вам нужно:

new_df.to_csv('mycsv.csv',index_label=['word','PredictedFeature'])

чтобы прочитать pd.read_csv:

new_read_csv=pd.read_csv('mycsv.csv')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...