Pandas 根据条件创建新列 5C

我有这样一个Pandas Dataframe:

index   col1     col2  

1       [1,2]    [apple, peer, oragne, banana]  
2       [2]      [pancake, soda]

我想创建一个新列,根据col1的index来选择col2的item,
例如:

index   col1     col2                                   col3

1       [1,2]    [apple, peer, oragne, banana]  [apple,peer]  
2       [2]      [pancake, soda]                         [soda]

请问应该如何操作?

2个回答

clo3=[]
for i in range(data.shape[0]):
tmp=[]
for j in data['col1'][i]:
tmp.append(data['col2'][i][j-1])
col3.append(tmp)
data['col3']=col3

我有这样一个数据框架:

Clinic Number date
0 1 2015-05-05
1 1 2015-05-05
2 1 2016-01-01
3 2 2015-05-05
4 2 2016-05-05
5 3 2017-05-05
6 3 2017-05-05
我想创建一个新的列并根据一些条件填写它。所以新的数据框架应该是这样的:

Clinic Number date row_number
0 1 2015-05-05 1
1 1 2015-05-05 1
2 1 2016-01-01 2
3 2 2015-05-05 3
4 2 2016-05-05 4
5 3 2017-05-05 5
6 3 2017-05-05 5
在新列中放置条目的规则是:如果诊所的编号和日期相同,它们将得到相同的编号,如果更改,则会增加。

例如这里1 2015-05-05有两行有相同的Clinic Number and date所以他们都得到1下一行的诊所号=1,但日期与前几行不相同,因此它将得到2。

def createnumber(x):
x['row_number'] = i

d['row_number']= pd1.groupby(['Clinic Number','date']).apply(createnumber)

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐