Как взять данные в ряд и добавить их в предыдущий ряд? - PullRequest
0 голосов
/ 10 января 2019

Итак, у меня есть база данных .csv, где в первом столбце все числа должны быть целыми числами, но некоторые из них являются строками. Похоже, там были вставлены новые строки. У меня вопрос, как я могу взять то, что не так в этом первом столбце и добавить его ко второму, последнему столбцу и последнему столбцу.

Например, набор данных будет выглядеть как

FACL_KEY HOSP    TEACHER.....   DESCR       REGION
1                              'some string'  WEST
'some string' NORTH'

Первая строка верна с ключом и строкой в ​​описании, но каким-то образом описание перемещается в следующую строку. Поэтому я хочу добавить некоторую строку в DESCR, а СЕВЕР в область, к которой она принадлежит.

У меня есть код ниже.

import re
import io
import pandas as pd
import numpy as np


def create_warehouse():
with open(r'file name') as f:
    data = f.read()
df= pd.read_csv(io.StringIO(re.sub('"\s*\n','"', data)))
for index, row in df.iterrows():

    if not find_int((row[0])):
      text = []
      text.append(row[0])
      region = []
      region.append(row[1])
      row_wth_2_cols = region + text

def find_int(input_string):
   try:
    int(input_string)
    return True
except (TypeError, ValueError):
    return False

То, что я делаю, - это поиск текста в первом столбце, и если да, то сохранение его в списке и сохранение региона в списке, а затем я хочу добавить его в предыдущие столбцы.

Я только что заметил что-то в моем csv, где не всегда отключена одна строка данных, иногда две или три, но в этом случае все эти строки должны быть добавлены к предыдущей строке в описании и регионе соответственно.

Ожидаемое решение должно выглядеть следующим образом. Обратите внимание, что под FACLKEY нет строк, и область перемещается в правильный столбец, а некоторая строка добавляется в описание.

 FACL_KEY HOSP      TEACHER....     DESCR               REGION 
  1       Fairview                  'ER. only' +'some string'  WEST
  2       Redwood                   'pediatrics'        NORTH
  3       Thomas                     'burn unit         MIDWEST

Я создал счетчик, чтобы найти, где каждая из проблем возникает по индексу, но я просто пытаюсь решить, как реализовать его для объединения данных.

...