我试图在一个pandas df
中创建一个新的column
,它由另一个column
中的值填充。具体来说,对于下面的df,我想填充1
中'Home'
值旁边的Col['Location']
。你知道吗
import pandas as pd
d = ({
'Day' : ['Mon','Tues','Mon','Wed','Thurs','Fri','Mon','Sat','Sun','Tues'],
'Location' : ['Home','Home','Away','Home','Home','Home','Home','Home','Home','Away'],
})
df = pd.DataFrame(data=d)
我目前正在通过以下方式进行:
m = lambda x: dict(Home='1').get(x, '')
df = df.assign(Assign=df.Location.map(m))
但是,我希望包含Col['Day']
来更改新的列值。我希望把数字分成三个部分。对于Day
中的前三个唯一值,我要将它们全部标记为1
。对于第4、第5、第6个唯一值,我要给它们加上标签2
等等
所以对于Home
df的Location
值,Day
中的前3个unique
值是Mon, Tues, Wed
,所以它们旁边都有1。第四、第五、第六个唯一值是Thurs, Fri, Sat
,因此它们旁边会有2
。Sun
在6
上,所以它会有一个3
预期输出:
Day Location Assign
0 Mon Home 1
1 Tues Home 1
2 Mon Away
3 Wed Home 1
4 Thurs Home 2
5 Fri Home 2
6 Mon Home 1
7 Sat Home 2
8 Sun Home 3
9 Tues Away
我认为首先只过滤} 创建字典-但只过滤行:
Home
行,删除重复项并为^{如果需要整数列:
如果混合数字和空字符串没有问题:
相关问题 更多 >
编程相关推荐