DataFrame (df) を単一の列でフィルタリングするには、男性と女性のデータを考慮すると、次のようになります。
males = df[df[Gender]=='Male']
質問 1: しかし、データが複数年にわたっており、2014 年の男性だけを確認したい場合はどうすればよいでしょうか?
他の言語では、次のようなことをするかもしれません:
if A = "Male" and if B = "2014" then
(ただし、これを実行して、元の DataFrame のサブセットを新しいデータフレーム オブジェクトに取得したい)
質問 2: これをループで実行し、年と性別の一意のセットごとにデータフレーム オブジェクトを作成するにはどうすればよいですか (つまり、2013-男性、2013-女性、2014-男性、および 2014-女性の df)。
for y in year:
for g in gender:
df = .....
ベストアンサー1
演算子を使用する場合は&
、サブステートメントを次のようにラップすることを忘れないでください()
。
males = df[(df[Gender]=='Male') & (df[Year]==2014)]
dict
for ループを使用して DataFrame を保存するには:
from collections import defaultdict
dic={}
for g in ['male', 'female']:
dic[g]=defaultdict(dict)
for y in [2013, 2014]:
dic[g][y]=df[(df[Gender]==g) & (df[Year]==y)] #store the DataFrames to a dict of dict
デモgetDF
:
def getDF(dic, gender, year):
return dic[gender][year]
print genDF(dic, 'male', 2014)