我有一个这样的数据帧df:
Country Value
US 300
FR 360
IT 500
NL 450
CH 700
CN 233
NF 123
AR 456
BR 129
NG 423
.. ..
.. ..
GR 560
CY 145
ES 890
PR 783
BL 123
我知道df中的这些国家是每种“实验类型”的前5个国家。实验类型是我创建的列表,它是:my_list = [1, 2, 3, 4, 5, ......,20 ]
。因此,前5个国家属于实验1,接下来的5个国家属于实验2,......,后5个国家属于实验20。
我想创建一列,该列将通过实验指示国家/地区,所以我想要这样做:
Experiment Country Value
1 US 300
FR 360
IT 500
NL 450
CH 700
2 CN 233
NF 123
AR 456
BR 129
NG 423
.. ..
.. ..
20 GR 560
CY 145
ES 890
PR 783
BL 123
我知道在使用groupby
函数创建数据框时可以执行类似的操作,但是在创建初始数据框后,您能帮上忙什么是最好的方法吗?
答案 0 :(得分:2)
我认为最好的方法是添加一个带有实验值的新列,如下所示:
df['Experiment'] = np.arange(len(df)) // 5
print (df)
Country Value Experiment
0 US 300 0
1 FR 360 0
2 IT 500 0
3 NL 450 0
4 CH 700 0
5 CN 233 1
6 NF 123 1
7 AR 456 1
8 BR 129 1
9 NG 423 1
10 GR 560 2
11 CY 145 2
12 ES 890 2
13 PR 783 2
14 BL 123 2