Печать множественных столбцов в Pandas (Python) - PullRequest
0 голосов
/ 03 декабря 2018

Я новичок в Python и модуле Pandas, но не могу заставить его работать.

Это мой код.Я использую CSV-файл, содержащий месяц и количество осадков для Сингапура.

Ниже мой код:

df = pd.read_csv('rainfall-monthly-total.csv')

print ((df['total_rainfall'])[df.total_rainfall == df['total_rainfall'].max()])
print ((df['month'])[df.total_rainfall == df['total_rainfall'].max()])
print ((df['total_rainfall', 'month'])[df.total_rainfall == df['total_rainfall'].max()])

Первые два утверждения работают нормально.Но что-то не так с третьим, и я не могу понять, почему.Ниже вывод.

"/Users/xxxx/PycharmProjects/Phyton for Finance/venv/bin/python" "/Users/xxxx/PycharmProjects/Phyton for Finance/Panda Tutorial.py"
299    765.9
Name: total_rainfall, dtype: float64
299    2006-12
Name: month, dtype: object
Traceback (most recent call last):
  File "/Users/xxxx/PycharmProjects/Phyton for Finance/venv/lib/python3.7/site-packages/pandas/core/indexes/base.py", line 3078, in get_loc
    return self._engine.get_loc(key)
  File "pandas/_libs/index.pyx", line 140, in pandas._libs.index.IndexEngine.get_loc
  File "pandas/_libs/index.pyx", line 162, in pandas._libs.index.IndexEngine.get_loc
  File "pandas/_libs/hashtable_class_helper.pxi", line 1492, in pandas._libs.hashtable.PyObjectHashTable.get_item
  File "pandas/_libs/hashtable_class_helper.pxi", line 1500, in pandas._libs.hashtable.PyObjectHashTable.get_item
KeyError: ('total_rainfall', 'month')

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/xxxx/PycharmProjects/Phyton for Finance/Panda Tutorial.py", line 16, in <module>
    print ((df['total_rainfall', 'month'])[df.total_rainfall == df['total_rainfall'].max()])
  File "/Users/xxxx/PycharmProjects/Phyton for Finance/venv/lib/python3.7/site-packages/pandas/core/frame.py", line 2688, in __getitem__
    return self._getitem_column(key)
  File "/Users/xxxx/PycharmProjects/Phyton for Finance/venv/lib/python3.7/site-packages/pandas/core/frame.py", line 2695, in _getitem_column
    return self._get_item_cache(key)
  File "/Users/xxxx/PycharmProjects/Phyton for Finance/venv/lib/python3.7/site-packages/pandas/core/generic.py", line 2489, in _get_item_cache
    values = self._data.get(item)
  File "/Users/xxxx/PycharmProjects/Phyton for Finance/venv/lib/python3.7/site-packages/pandas/core/internals.py", line 4115, in get
    loc = self.items.get_loc(item)
  File "/Users/xxxx/PycharmProjects/Phyton for Finance/venv/lib/python3.7/site-packages/pandas/core/indexes/base.py", line 3080, in get_loc
    return self._engine.get_loc(self._maybe_cast_indexer(key))
  File "pandas/_libs/index.pyx", line 140, in pandas._libs.index.IndexEngine.get_loc
  File "pandas/_libs/index.pyx", line 162, in pandas._libs.index.IndexEngine.get_loc
  File "pandas/_libs/hashtable_class_helper.pxi", line 1492, in pandas._libs.hashtable.PyObjectHashTable.get_item
  File "pandas/_libs/hashtable_class_helper.pxi", line 1500, in pandas._libs.hashtable.PyObjectHashTable.get_item
KeyError: ('total_rainfall', 'month')

Process finished with exit code 1

Я использую PyCharm с Phyton 3.7.Как заставить Фитона распечатать оба столбца для этого конкретного месяца?

Ответы [ 2 ]

0 голосов
/ 03 декабря 2018

Попробуйте:

print ((df[['total_rainfall', 'month']])[df.total_rainfall == df['total_rainfall'].max()]

Вам необходимо преобразовать одинарные квадратные скобки в двойные:

['total_rainfall', 'month']

TO

[['total_rainfall', 'month']]
0 голосов
/ 03 декабря 2018

Легко.Вы должны использовать использовать список столбцов, которые вы хотите напечатать.поэтому используйте df.loc для фильтрации вашего фрейма данных с условиями:

print(df.loc[df.total_rainfall == df['total_rainfall'].max(), ['total_rainfall', 'month']])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...