Это может быть ответ, который вы ищете:
grep abc MyFile | grep def
Единственное, что есть ... он будет выводить строки «def» перед OR после «abc»
загружая выборку из ваших данных, я заметил, что значения для столбца «Индикатор» не все строчные - т.е. 'Export(US$ Mil)'
, а не 'export(us$ mil)'
. вам нужно либо использовать правильное значение, либо альтернативно:
DataT['Indicator'] = DataT['Indicator'].str.lower().replace('export(us$ mil)',
'exports (in us$ mil)')
вы всегда можете проверить уникальные значения для столбца, используя df[col].unique()
После долгих испытаний я попал в приведенное ниже решение, просто импортируй 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)')