Przechodzę z R do Pythona. Właśnie zacząłem używać Pandy. Mam kod R ładnie podzbiory:podzbiór Pythona DataFrame
k1 <- subset(data, Product = p.id & Month < mn & Year == yr, select = c(Time, Product))
Teraz chcę zrobić podobne rzeczy w Pythonie. to co mam do tej pory:
import pandas as pd
data = pd.read_csv("../data/monthly_prod_sales.csv")
#first, index the dataset by Product. And, get all that matches a given 'p.id' and time.
data.set_index('Product')
k = data.ix[[p.id, 'Time']]
# then, index this subset with Time and do more subsetting..
zaczynam czuć, że robię to w niewłaściwy sposób. być może istnieje eleganckie rozwiązanie. Czy ktoś może pomóc? Muszę wyodrębnić miesiąc i rok z mojego znacznika czasu i wykonać podzestawy. Być może istnieje jeden liniowiec, który wykona to wszystko:
k1 <- subset(data, Product = p.id & Time >= start_time & Time < end_time, select = c(Time, Product))
dziękuję.
Dzięki Philip. To dobrze działa. Tego właśnie szukałem - prostego, szybkiego rozwiązania. Wielkie dzięki jeszcze raz. Dla tych, którzy szukają takiego rozwiązania, użyty czas jest taki: (data.ts> = '2012-10-01') & (data.ts <'2013-05-01'). – user1717931
Pewnie! Chętnie pomoże. –
@Philip, próbowałem twojej sugestii z iPython z konkretnymi wartościami w moich warunkach. Pracowali dobrze. Ale kiedy osadzę to samo w programie i wywołam z parametrami, pojawia się błąd - końcowe wiersze to: 'code' Plik" /usr/local/lib/python2.7/dist-packages/pandas/core/series .py ", linia 225, w opakowaniu, jeśli len (samo)! = len (inne): Błąd typu: len() niezajętego obiektu – user1717931