Если заявление над pandas.series и добавить результат в список - PullRequest
0 голосов
/ 11 сентября 2018

Я пытаюсь составить список из результатов. Не могли бы вы сказать мне, почему этот результат пуст?

Я не ищу решения с помощью numpy, поэтому изначально я создам> 50 списков, а затем сохраню их в CSV.

df1 = pd.DataFrame(data={"Country":["USA","Germany","Russia","Poland"], 
"Capital":["Washington","Berlin","Moscow","Warsaw"], "Region": 
["America","Europe","Europe",'Europe']})


America = []

if (df1['Region']=='America').all():
America.append(df1)

print(America)

Ответы [ 2 ]

0 голосов
/ 11 сентября 2018

Я не уверен, что вы хотите. Если вы хотите добавить весь список данных в список, если «Америка» находится в регионе:

for region in df1.Region :
    if region == 'America':
        America.append(df1)

Если вы хотите добавить элемент из каждого списка, который имеет тот же индекс, что и «Америка» в списке «Регион»:

count = 0
for region in df1.Region :
    if region == 'America':
        America.append(df1.Country[count])
        America.append(df1.Capital[count])
    count += 1

Это отвечает на вопрос?

0 голосов
/ 11 сентября 2018

Ваше выражение df1['Region']=='America' дает так называемую логическую маску ( документы по булевой индексации ).Логическая маска - это панды Series из True и False, чей индекс выровнен с индексом df1.

Легко получить ожидаемые значения, как только вы привыкнете к булевой индексации:

df1[df1['Region']=='America']
  Country     Capital   Region
0     USA  Washington  America

Если вы заинтересованы в сохранении целых строк, не пытайтесь вручную создавать список Python;это сильно усложнит вашу работу по сравнению с прилипанием к пандам.Вы можете сохранить строки в новом DataFrame:

# Use df.copy() here so that changing America won't change df1
America = df1[df1['Region']=='America'].copy()

Почему if (df1['Region']=='America').all(): не сработал

Метод Series.all() проверяет, являются ли все значения вСерии правдивы.Здесь вам нужно проверить каждую строку для вашего условия df1 ['Region'] == 'America' и сохранить только те строки, которые соответствуют этому условию (если я вас правильно понимаю).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...