我有这样一个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]
请问应该如何操作?
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)