フィルタリングおよび列選択のためのloc
に使用boolean indexing
:
df.loc[(df["Column1"] == "data1") & (df["Column2"] == "data2"), 'Column1'].sum()
やフィルタリングのためのquery
を使用します。
df.query("Column1 == 'data1' & Column2 == 'data2'")['Column1'].sum()
しかしdata1
が数値である必要があり、それ以外の文字列値が連結されています
df = pd.DataFrame({'Column1':[1,3,3],
'Column2':['data1','data2', 'data2']})
print (df)
Column1 Column2
0 1 data1
1 3 data2
2 3
print (df.loc[(df["Column1"] == 3) & (df["Column2"] == "data2"), 'Column1'])
1 3
2 3
Name: Column1, dtype: int64
a = df.loc[(df["Column1"] == 3) & (df["Column2"] == "data2"), 'Column1'].sum()
print (a)
6
b = df.query("Column1 == 3 & Column2 == 'data2'")['Column1'].sum()
print (b)
6
I DATA1が文字列であれば、私は比較の同じ種類を行う可能性がありますどのように
a = ((df["Column1"] == 3) & (df["Column2"] == "data2")).sum() * 3
print (a)
6
df = pd.DataFrame({'Column1':['data2','data1', 'data1'],
'Column2':['data1','data2', 'data2']})
print (df)
Column1 Column2
0 data2 data1
1 data1 data2
2 data1 data2
c = df.loc[(df["Column1"] == "data1") & (df["Column2"] == "data2"), 'Column1'].sum()
print (c)
data1data1
:nは、このサンプルでは、値
3
を見つけることによってマスクと複数でTrue
のposssible合計ですか? – Whatamiaサンプルを追加して説明を追加します。 – jezrael