#python #python-3.x #pandas #dataframe #for-loop
#python #python-3.x #pandas #фрейм данных #for-цикл
Вопрос:
У меня есть этот фрейм данных (сжатый):
year month name
2000 January car
2000 January bike
2000 February train
2000 May car
2001 January bike
2001 February car
2001 February bike
2001 July car
2002 January car
2002 February train
2002 March bike
2002 July car
Мне нужно добавить данные за 2001 год и февраль в список, для этого я создал следующий код.
name2001 = []
for year in df['year']:
if year == 2001:
for month in df['month']:
if month == 'February':
for name in df['name']:
name2001.append(name)
Я выполнял отладку и получил эту ошибку:
'Too large to show contents. Max items to show: 300'
Я изменил его на 10000 и получаю эту ошибку:
'Too large to show contents. Max items to show: 10000'
Но я знаю, что необходимо добавить около 5000 данных.
Что не так с циклом for?
Комментарии:
1. Вы хотите добавить строку в свой фрейм данных?
2. Мне нужно добавить имена в этот список ‘name2001’, чтобы позже работать с этим списком с помощью matplotlib. Я не знаю, можно ли это сделать.
3. Итак, вы хотите создать список со столбцом name2001, это правильно?
4. О, данные из столбца name2001, который имеет соответствующее значение года 2001 и значение месяца Февраль?
5. Да, и я получаю только названия 2001 года и месяца февраль (в примере это будет автомобиль или велосипед). Это был бы второй вопрос.
Ответ №1:
Вы можете сделать, например:
df[df.year.eq(2001) amp; df.month.str.contains('February')].name
это даст вам содержимое столбца name
, в котором есть 2001 год в их year
столбце и февраль в их month
столбце.
Если нужен список:
df[df.year.eq(2001) amp; df.month.str.contains('February')].name.to_list()
давая вам:
['car', 'bike']