我有一个像这样的数据框 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
函数创建数据框时完成类似的操作,但是在创建初始数据框之后,您能帮忙确定现在执行此操作的最佳方法是什么吗?
最佳答案
我相信最好的方法是添加一个包含实验值的新列,如下所示:
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
关于python - 在Python数据框中创建具有多个名称的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52037465/