Python 匿名化数据帧列

Python 匿名化数据帧列,python,pandas,dataframe,Python,Pandas,Dataframe,比方说,我有下面的数据框 Person_info (Bob, 2) (John, 1) (Bek, 10) (Bob, 6) 我想通过保持它们的价值来匿名 Person_info (Person 1, 2) (Person 2, 1) (Person 3, 10) (Person 1, 6) 我有一个简单的匿名方法,但它不能帮助我得到想要的 有人能在Python中对此有所帮助吗?下面您可以使用strip()和split()方法: out=df['Person_info'].str.strip

比方说,我有下面的数据框

Person_info
(Bob, 2)
(John, 1)
(Bek, 10)
(Bob, 6)
我想通过保持它们的价值来匿名

Person_info
(Person 1, 2)
(Person 2, 1)
(Person 3, 10)
(Person 1, 6)
我有一个简单的匿名方法,但它不能帮助我得到想要的

有人能在Python中对此有所帮助吗?

下面您可以使用
strip()
split()
方法:

out=df['Person_info'].str.strip('()| ').str.split(',',1,expand=True)
df['Person_info']=out.agg(tuple,1)
然后按照以下方法使用
factorize()
方法:

最后使用
agg()
方法:

out=df['Person_info'].str.strip('()| ').str.split(',',1,expand=True)
df['Person_info']=out.agg(tuple,1)
df的输出

    Person_info
0   (Person1, 2)
1   (Person2, 1)
2   (Person3, 10)
3   (Person1, 6)

将您的
姓名
转换为类别并获取类别代码;)

将熊猫作为pd导入
dataf=pd.DataFrame(
[('Bob',2),
('John',1),
('Bek',10),
('Bob',6)],列=['name','valuex'])
dataf[“name”]=dataf[“name”].astype(“category”).cat.codes.map(lambda x:f“Person{x}”)
打印(数据格式)
输出
name valuex
0人1 2
1人2 1
2人0 10
3人16
更新:
…
dataf[“Person_info”]=“dataf.itertuples中信息的信息(index=False,name=None)]
输出:

姓名值x个人信息
0人1 2(人1、2)
1人2人1(2人1)
2人0人10人(0人10人)
3人16(1人6人)

这是一列还是这两列?它是一列。
打印的输出是什么(键入(df[“Person\u info”].iloc[0])
?我可以看到结果
。当我运行代码时,我在其中一行
(Person1,None,None,None)
。更新的答案…请检查:)OP需要人员1,2,3,1.不是1,2,0,1.能不能像我在问题中所说的那样,把它们放在一个栏目里?因为我的挑战就是这个。只需使用
itertuples
;)