在Python中有办法做到这一点吗



我有一个数据帧,看起来像这样:

data = {'State': ['24', '24', '24', 
'24','24','24','24','24','24','24','24','24'],
'County code': ['001', '001', '001', 
'001','002','002','002','002','003','003','003','003'],
'TT code': ['123', '123', '123',
'123','124','124','124','124','125','125','125','125'],
'BLK code': ['221', '221', '221',
'221','222','222','222','222','223','223','223','223'],
'Age Code': ['1', '1', '2', '2','2','2','2','2','2','1','2','1']}
df = pd.DataFrame(data)

本质上,我只想有TT代码,年龄代码是2,没有1。所以我只想有一个数据帧,其中:

'State': ['24', '24', '24', '24'],
'County code': ['002','002','002','002',],
'TT code': ['124','124','124','124',],
'BLK code': ['222','222','222','222'],
'Age Code': ['2','2','2','2']

有办法做到这一点吗?

IIUC,您想只保留只有值为'2'的年龄组的TT组吗?

您可以在布尔序列上使用groupby.tranform('all')

df[df['Age Code'].eq('2').groupby(df['TT code']).transform('all')]

输出:

State County code TT code BLK code Age Code
4    24         002     124      222        2
5    24         002     124      222        2
6    24         002     124      222        2
7    24         002     124      222        2

这应该可以工作。

df111['Age Code'] = "2"

我只是想知道为什么选择字符串作为值整数的类型

相关内容

最新更新