如何将str.extract的输出列重新添加到数据框中?

时间:2019-09-11 16:58:20

标签: python regex pandas dictionary

我正在使用str.extract将一列名称解析为它们的各个组成部分(即标题,名字,中间名,姓氏),我想将其添加到数据框中,同时还要保留原始列进行质量检查。

我有一个数据框字典(来自excel / csv文件),在其中循环遍历值以清理数据框,并且可以通过将列串联起来来完成上述操作。这可行,但是不会更新数据框在字典中。

我使用for循环遍历字典值。我检查“名称”是否为df中的列。如果是的话,我将对输出进行数据框(df1)并连接df和df1。但是,这不会更新字典中的数据框...(df.dropna和df.rename可以正常工作)。

        for df in all_files.values():
            df.dropna(how='all', axis=1, inplace=True) 
            df.rename(columns=names_to_value_dict, inplace=True) 
                for i in df.columns:
                    if (i == NAME):
                        df1 = df['name'].str.extract('^(?P<title>.*\.\s)*(?P<first_name>[A-Z]\.?\w*\-?[A-Z]?\w*)\s?(?P<middle_name>[A-Z]\w+|[A-Z]?\.?)\s(?P<last_name>(?:[A-Z]\w{1,3}|St\.\s)?[A-Z]\w+\-?[A-Z]?\w*)(?:,\s|)(?P<Suffix>Jr\.|Sr\.|IV|III|II|)', expand=True)
                        df = pd.concat([df, df1], axis=1)
                        break

我希望带有分解列的数据框在字典中更新。 附加信息:

  • 某些数据帧具有需要解析的“名称”列,而有些则不需要。
  • 我需要将它放在字典中,以便以后在连接字典中的所有数据框时可以使用键来跟踪原始文件。
  • 名称都是不同的格式

0 个答案:

没有答案