Как разделить текст в одном столбце фрейма данных pandas до необходимого формата (три столбца фрейма данных) - PullRequest
0 голосов
/ 26 июня 2019

Учитывая данные, мне нужно разделить на три столбца как Name, Date, Type IN data frames:

Данные:

ANNAPOLIS INDUSTRIAL LOAN CO - Aug-2002 - Non-Procurable Miscellaneous Non-Procurable Royalties Royalties

PERRY & CO - Apr-2016 - Non-Procurable Miscellaneous Non-Procurable Royalties Royalties

ASSOCIATED BANC-CORP - Jun-2008 - Corporate Services Human Resources Contingent Labor/Temp Labor Contingent Labor/Temp Labor

L-3 COMMUNICATIONS TITAN CORP - Dec-2014 - Store Construction General Contractor General Requirements Final Site Clean Up

AMERACE CORP 1967 QUAL STK OPT PL & 1972 QUAL-NON-QUAL STK O - Jun-2002 - Store Construction Fixtures Store Fixtures Store Fixtures

ASSOCIATED BANC-CORP - Jun-2008 - Corporate Services Human Resources Contingent Labor/Temp Labor Contingent Labor/Temp Labor

AETNA VARIABLE FUND - Apr-2002 - Store Management Real Estate Real Estate Services Real Estate General (Search, Appraisal, Realtor Commission)


FAIRCHILD CORP - Nov-2001 - Store Management Real Estate Real Estate Services Real Estate General (Search, Appraisal, Realtor Commission

CALIFORNIA REAL ESTATE INVESTMENT TRUST - Mar-2013 - Store Management Real Estate Real Estate Services Real Estate General (Search, Appraisal, Realtor Commission)

EDO CORP - Jul-2008 - Store Management Real Estate Real Estate Services Real Estate General (Search, Appraisal, Realtor Commission)

Какпреобразовать данные в три отдельных столбца, используя регулярное выражение .

Я только начал изучать регулярное выражение, поэтому у меня нет идеи, как выполнить то же самое.

1 Ответ

1 голос
/ 26 июня 2019

Вы можете легко найти дату с помощью этого шаблона: -\s([A-Z][a-z]{2}-[0-9]{4})\s-

Затем вам просто нужно выбрать начало и конец предложения из шаблона даты, чтобы получить names и types.

Вот код (с помощью модуля re):

# Import module
import re
# Read file
with open("temp.txt") as f:
    text = f.read()

# Apply regex rules
names = re.findall(r"(.*?)-\s[A-Z][a-z]{2}-[0-9]{4}\s-", text)
dates = re.findall(r"-\s([A-Z][a-z]{2}-[0-9]{4})\s-", text)
types = re.findall(r"-\s[A-Z][a-z]{2}-[0-9]{4}\s-([^\n]*)", text)

# Create dataframes
df = pd.DataFrame({"Name": names,
                    "Date": dates,
                    "Type": types})

print(df)
#                                                Name      Date                                               Type
# 0                      ANNAPOLIS INDUSTRIAL LOAN CO   Aug-2002   Non-Procurable Miscellaneous Non-Procurable R...
# 1                                        PERRY & CO   Apr-2016   Non-Procurable Miscellaneous Non-Procurable R...
# 2                              ASSOCIATED BANC-CORP   Jun-2008   Corporate Services Human Resources Contingent...
# 3                     L-3 COMMUNICATIONS TITAN CORP   Dec-2014   Store Construction General Contractor General...
# 4  AMERACE CORP 1967 QUAL STK OPT PL & 1972 QUAL-...  Jun-2002   Store Construction Fixtures Store Fixtures St...
# 5                              ASSOCIATED BANC-CORP   Jun-2008   Corporate Services Human Resources Contingent...
# 6                               AETNA VARIABLE FUND   Apr-2002   Store Management Real Estate Real Estate Serv...
# 7                                    FAIRCHILD CORP   Nov-2001   Store Management Real Estate Real Estate Serv...
# 8           CALIFORNIA REAL ESTATE INVESTMENT TRUST   Mar-2013   Store Management Real Estate Real Estate Serv...
# 9                                          EDO CORP   Jul-2008   Store Management Real Estate Real Estate Serv...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...