簡體   English   中英

在 Pandas Dataframe 中組合列的值和 state 條件

[英]Combine values of columns and state condition in Pandas Dataframe

我有以下 dataframe:

import pandas as pd
df = pd.DataFrame({'a': ['1', '1', '1', '2', '2', '2', '3', '3', '4', '4'], 'b': ['True', 'False', 'True', 'True', 'True', 'True', 'True', 'True', 'False', 'False']})
 a      b
0  1   True
1  1  False
2  1   True
3  2   True
4  2   True
5  2   True
6  3   True
7  3   True
8  4  False
9  4  False

我想將a 列中的所有數字與相同的數字結合起來。 此外,我想 state 在b 列中,如果 b 的所有值對於特定a都為真,則將設置為真,或者如果至少一個為假,則將其設置為假。

因此,結果應如下所示:

 a      b
0  1  False
1  2   True
2  3   True
3  4  False

我如何實現這一目標? 我用 groupby 試過了,但我找不到合適的解決方案。

使用GroupBy.all測試所有值是否為True s:

#if necessary convert strings to boolean
df['b'] = df['b'].map({'True':True, 'False':False})

df = df.groupby('a', as_index=False)['b'].all()
print (df)
   a      b
0  1  False
1  2   True
2  3   True
3  4  False

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM