Замена кадра данных не работает - encoding = 'ISO-8859-1', Python 3.6

Это может быть ответ, который вы ищете:

grep abc MyFile | grep def

Единственное, что есть ... он будет выводить строки «def» перед OR после «abc»

0
задан SPy 18 January 2019 в 15:01
поделиться

2 ответа

загружая выборку из ваших данных, я заметил, что значения для столбца «Индикатор» не все строчные - т.е. 'Export(US$ Mil)', а не 'export(us$ mil)'. вам нужно либо использовать правильное значение, либо альтернативно:

DataT['Indicator'] = DataT['Indicator'].str.lower().replace('export(us$ mil)',
                                                            'exports (in us$ mil)')

вы всегда можете проверить уникальные значения для столбца, используя df[col].unique()

0
ответ дан Amirhos Imani 18 January 2019 в 15:01
поделиться

После долгих испытаний я попал в приведенное ниже решение, просто импортируй re module.

Однако вы можете упростить свой код как:

import pandas as pd
import glob
import re
for f in glob('/your_Dir_path/somefiles*.csv'):
    Data = pd.read_csv(f, encoding = 'ISO-8859-1', dtype=object)

Набор данных:

>>> Data['Indicator'].head()
0     GDP (current US$ Mil)
1    No. Of Export partners
2    No. Of Export products
3    No. Of Import partners
4    No. Of Import products
Name: Indicator, dtype: object
>>> Data['Indicator'].head(100)
0                     GDP (current US$ Mil)
1                    No. Of Export partners
2                    No. Of Export products
3                    No. Of Import partners
4                    No. Of Import products
5                   No. Of Tariff Agreement
6           Trade Balance (current US$ Mil)
7      Trade (US$ Mil)-Top 5 Export Partner
8      Trade (US$ Mil)-Top 5 Export Partner
9      Trade (US$ Mil)-Top 5 Export Partner
10     Trade (US$ Mil)-Top 5 Export Partner
11     Trade (US$ Mil)-Top 5 Import Partner
12     Trade (US$ Mil)-Top 5 Export Partner
13     Trade (US$ Mil)-Top 5 Import Partner
14     Trade (US$ Mil)-Top 5 Export Partner
15     Trade (US$ Mil)-Top 5 Import Partner
16     Trade (US$ Mil)-Top 5 Export Partner
17     Trade (US$ Mil)-Top 5 Export Partner
18     Trade (US$ Mil)-Top 5 Import Partner

Результат:

[112 ]

Для вашего примера попробуйте ниже:

import re

DataT['Indicator'] = DataT['Indicator'].str.replace(re.escape('export(us$ mil)'), 'exports (in us$ mil)')
DataT['Indicator'] = DataT['Indicator'].str.replace(re.escape('import(us$ mil)'), 'imports (in us$ mil)')
0
ответ дан pygo 18 January 2019 в 15:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: