Не удается удалить пробелы из заголовков CSV с помощью панд - PullRequest
0 голосов
/ 20 ноября 2018

Я пытаюсь переименовать заголовки в CSV, которые имеют пробелы.Использование этих строк из справочника Pandas API не работает.Заголовки по-прежнему имеют пробелы вместо подчеркивания.

import pandas as pd

df = pd.read_csv("my.csv",low_memory=False)
df.columns = df.columns.str.strip().str.lower().str.replace(' ', '_')

Ответы [ 3 ]

0 голосов
/ 20 ноября 2018

Пробовал с помощью переименования?

df.rename(index=str, columns={"A space": "a", "B space ": "c"})
0 голосов
/ 20 ноября 2018

Я отказался от Pandas и только что использовал модуль CSV в Python 2.7.

import csv
import re
import tempfile
import sys
import os
if sys.version_info >= (3, 3):
    from os import replace
elif sys.platform == "win32":
    from osreplace import replace
else:
    from os import rename as replace

newHeaderList = []

with tempfile.NamedTemporaryFile(dir='.', delete=False) as tmp, \
    open('myFile.txt', 'rb') as f:
    r = csv.reader(f, delimiter = '\t')
    w = csv.writer(tmp, delimiter = '\t', quoting=csv.QUOTE_NONNUMERIC)
    header = next(r)
    for h in header:
        headerNoSpace = re.sub("\s+", "_", h.strip())
        newHeaderList.append(headerNoSpace)
    w.writerow(newHeaderList)
    for row in r:
        w.writerow(row)

os.rename(tmp.name, new_text_filepath)


new_txt = csv.reader(open('newFile.txt', "rb"), delimiter = '\t')
out_csv = csv.writer(open('myFile.csv', 'wb'))
out_csv.writerows(new_txt)
0 голосов
/ 20 ноября 2018

Попробуйте использовать понимание списка.

df.columns = [c.strip().lower().replace(' ', '_') for c in df.columns]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...