Как разбить Dataframe на Sub-Dataframes по индексу строки - PullRequest
0 голосов
/ 15 мая 2019

У меня есть функция foo() с кадром данных входного параметра, который считает каждое значение большим 1. Таким образом, кадр данных 400x5 уменьшается до 1x5.

Теперь у меня есть датафрейм вроде

Country    Value1    Value2
US         1         3
Uk         3         2
US         2         1
UK         5         5

Результат может выглядеть как

Country    Value1    Value2
US         1         1 
Uk         2         2

Моя цель - разделить набор данных по странам и выполнить мой foo(). Я нашел решение , чтобы разделить набор данных с groupby(), но groupby возвращает мне tuples, а не кадры данных, что является проблемой, поскольку мой foo() только ест кадры данных. У кого-нибудь есть идеи, как я могу разбить свой фрейм данных на фреймы данных и выполнять свои функции на них?

1 Ответ

1 голос
/ 16 мая 2019
import pandas as pd
from pandas.compat import StringIO
print(pd.__version__)

data =  """Country    Value1    Value2
US         1         3
UK         3         2
US         2         1
UK         5         5"""

df = pd.read_csv(StringIO(data), sep='\s+')
df = df.groupby('Country').apply(lambda x: x.where(x > 1).count())
print(df)

Производит

0.24.2
         Value1  Value2
Country                
UK            2       2
US            1       1

Обратите внимание, что страны обрабатываются с учетом регистра, Q содержит смешанный регистр, ответ - нет.

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