каждые 3 строки в одном столбце должны быть назначены новым 3 столбцам с помощью python - PullRequest
1 голос
/ 04 мая 2020

У меня есть текстовый файл, мне нужно проанализировать каждые 3 строки и назначить новые три столбца, используя pandas / numpy из фрейма данных.

Пример sample.txt выглядит следующим образом

com.google.plugin.system.url:540 ,,, 
178745,,, 
Country ,,, 
23-DEC-13 03-FEB-14 ,,, 
com.google.plugin.system.url:540 ,,, 
178744,,, 
Responsible ID ,,, 
23-DEC-13 03-FEB-14 ,,, ,,,
com.google.plugin.system.url:540 ,,,
 178743,,, 
Development Group ,,, 
23-DEC-13 03-FEB-14
##############################################################

Ожидаемый результат должен выглядеть следующим образом

Name                                   ID        case         Date 
com.google.plugin.system.url:540     178745     Country   23-DEC-13 03-FEB-14
com.google.plugin.system.url:540     178744  Responsible ID  23-DEC-13 03-FEB-14
com.google.plugin.system.url:540      178744  Development Group  23-DEC-13 03-FEB-14

Пожалуйста, помогите мне кому-нибудь. Как перефразировать это сверху dataframe

1 Ответ

1 голос
/ 04 мая 2020

Я думаю, что это должно сработать, если ваши записи находятся в 4 рядах сегментов:

import pandas as pd

#set file name and full path
file = 'filename.txt'

#read in file without headers and add a dummy column, make sure you reset index and keep it as it'll be your data
df = pd.read_csv(file, header=None, names=['record']).reset_index(drop=False)
#keep only the needed data
df = df[['level_0']]

#create new dataframe by reading values to each column based on location and segement 
new_df = pd.DataFrame({'Name':df['level_0'].iloc[::4].values, 'ID':df['level_0'].iloc[1::4].values, 'case':df['level_0'].iloc[2::4].values, 'Date':df['level_0'].iloc[3::4].values})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...