如何连续获取数据并将其添加到上一行?

时间:2019-01-10 20:48:58

标签: python-3.x csv data-cleaning

所以我有一个.csv数据库,在第一列中所有数字都应该是整数,但其中一些是字符串。好像必须插入一些新行。我的问题是我该如何处理第一列中的问题并将其添加到倒数第二列和最后一列。

例如,数据集看起来像

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

第一行与键和描述中的字符串是正确的,但是以某种方式将描述移至下一行。所以我想将一些字符串添加到DESCR中,将NORTH添加到它所属的区域中。

我下面有我的代码。

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中的某些内容,它并不总是关闭一行数据,有时是两到三行,但是在这种情况下,所有这些行都应分别添加到description和region的前一行。

预期的解决方案应如下所示。 请注意,FACLKEY下没有字符串,并且该区域在正确的列中移动,并且在描述中添加了一些字符串。

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

我创建了一个计数器,以按索引查找每个问题的发生位置,但是我只是在努力实现该方法以汇总数据。

0 个答案:

没有答案