Удалить буквы и знаки из файла CSV - Python 3.7 - PullRequest
2 голосов
/ 08 июля 2019

Я получил CSV-файл со столбцом с именем activity, в котором есть такие данные, как:

instv2-02_00001_20190517235008
instv2 (9)
Insti2(3)
Fbstt1_00001_20190517131933

Мне нужно удалить цифры и любые другие знаки (например, _) из имен только в столбце «активность». Это означает, что нужно хранить только буквы. например instv3-02_00001_20190517235157, instv1-02_00000_20190517234840, instv1 (4) ... и т. Д. Все они должны быть переименованы / заменены на instv. Как я могу сделать это в скрипте Python?

Ответы [ 2 ]

1 голос
/ 08 июля 2019

Использование re модуля и встроенной функции open:

import re

with open('Alldata10.csv', 'r') as file_r, open('Alldata10_revised.csv', 'w') as file_w:
    for line in file_r:
        line = line.split(',')
        line[0] = re.sub('[^a-zA-Z]+', '', line[0])
        line = ','.join(line)
        file_w.write(line)
0 голосов
/ 08 июля 2019

Используя pandas, загрузите файл CSV и примените замену регулярного выражения к значениям столбца activity.

Попробуйте этот код:

import re
import pandas as pd

df = pd.read_csv('your_file.csv')
df['activity'] = df['activity'].apply(lambda x: re.sub(r'^([a-zA-Z]+).*', r'\1', x))
df.to_csv('output.csv', index=False)

и если это связано с вашим вопросом здесь , то вам просто нужно импортируйте заново и измените последнюю строку решения так:

import re

# ...

all_df['activity'] = all_df['activity'].apply(lambda x: re.sub(r'^([a-zA-Z]+).*', r'\1', x))
all_df.to_csv('all_data.csv', index=False)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...