我试图在熊猫中将数据连接起来,但它似乎对我来说效果不佳。
我有一些我希望转换为数字的数据,我能够做到这一点。然后我想让它重新加入数据集。
这是原始数据的样子:
CallDate Agent Group Direction
0 2015-09-01 Adam Billing Inbound
1 2015-09-01 Nathaniel Billing Outbound
2 2015-09-01 Jessica Claims Inbound
3 2015-09-01 Tom Billing Outbound
4 2015-09-01 Jane CCS Inbound
以下是将组转换为数字
的代码data['Group']=data['Group'].astype(str)
data.Group=data['Group'].apply(lambda x:len(x))
这有效并且给了我正在寻找的东西 0 1 1 1 2 13 3 1 4 6
然后我尝试将其合并回组(基本上我想知道每个名称/号码对应的内容)
y=pd.concat([data,data.Group], ignore_index=True)
y [:5]
但结果与原始数据库相同
我有什么明显的遗漏或者更容易解决的问题,我没想到。
答案 0 :(得分:2)
pd.concat()
是连接两个DataFrame
。我想您正在尝试连接a DataFrame
中的两列。
data
Out[42]:
CallDate Agent Group Direction
0 2015-09-01 Adam Billing Inbound
1 2015-09-01 Nathaniel Billing Outbound
2 2015-09-01 Jessica Claims Inbound
3 2015-09-01 Tom Billing Outbound
4 2015-09-01 Jane CCS Inbound
data.Group = data.Group + data.Group.apply(lambda x:" / "+str(len(x)))
data
Out[44]:
CallDate Agent Group Direction
0 2015-09-01 Adam Billing / 7 Inbound
1 2015-09-01 Nathaniel Billing / 7 Outbound
2 2015-09-01 Jessica Claims / 6 Inbound
3 2015-09-01 Tom Billing / 7 Outbound
4 2015-09-01 Jane CCS / 3 Inbound
您可以在pandas concat API documentation
中找到更多详细信息更新新列
data['Group_1'] = data.Group + data.Group.apply(lambda x:" / "+str(len(x)))
data
Out[56]:
CallDate Agent Group Direction Group_1
0 2015-09-01 Adam Billing Inbound Billing / 7
1 2015-09-01 Nathaniel Billing Outbound Billing / 7
2 2015-09-01 Jessica Claims Inbound Claims / 6
3 2015-09-01 Tom Billing Outbound Billing / 7
4 2015-09-01 Jane CCS Inbound CCS / 3
答案 1 :(得分:1)
您可以使用cat
功能在pandas
中连接两个系列,然后在Documentation查看cat
功能。
您也可以使用len
函数df.Group.str.len()
df['Group'] = df.Group.str.cat(df.Group.str.len().astype(str), sep=' => ')
df
Out[42]:
CallDate Agent Group Direction
2015-09-01 Adam Billing => 7 Inbound
2015-09-01 Nathaniel Billing => 7 Outbound
2015-09-01 Jessica Claims => 6 Inbound
2015-09-01 Tom Billing => 7 Outbound
2015-09-01 Jane CCS => 3 Inbound