使用boolean indexing
过滤和loc
的选择列:
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 n这个样本是posssible总和True
S IN面具,多通过寻找价值3
:
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
我怎么可能会做同样类型的比较,如果数据1是一个字符串? – Whatamia
我添加样本以获得更好的解释。 – jezrael