Отделение заглавных букв от цифр в файле CSV - PullRequest
0 голосов
/ 22 апреля 2020

У меня большой CSV-файл с цифрами и буквами в одной строке.

Как получить в новом столбце только заглавные буквы?

CSV имеет этот формат

1AAOIAppli
2ABEOAbeon
3ABIOARCA
4ABUSArbut
5ACERAcer

...

И я хотел бы создать новый CSV, как этот

AAOI
ABEO
ABIO
ABUS
ACER
...

Я изучал python в течение последних 2 недель, и я отчаянно нуждаюсь в этом,

Спасибо вы все

1 Ответ

0 голосов
/ 22 апреля 2020

Использование pandas

import pandas as pd

# read in the file
df = pd.read_csv('test.csv', header=None)

# .isupper to check a character
# .join to join the letters back into a string
# [:4] to slice the first 4
df['upper'] = df[0].apply(lambda x: ''.join([letter for letter in x if letter.isupper()])[:4])

print(df)

          0 upper
 1AAOIAppli  AAOI
 2ABEOAbeon  ABEO
  3ABIOARCA  ABIO
 4ABUSArbut  ABUS
  5ACERAcer  ACER

# save only upper to a new file
df['upper'].to_csv('new_file.csv', index=False)

Если вы хотите, чтобы все заглавные буквы вместо первых 4

df['upper'] = df[0].apply(lambda x: ''.join([letter for letter in x if letter.isupper()]))

          0     upper
 1AAOIAppli     AAOIA
 2ABEOAbeon     ABEOA
  3ABIOARCA  ABIOARCA
 4ABUSArbut     ABUSA
  5ACERAcer     ACERA
...