python中我们可以用至少三种不同的方法来修改DataFrame数据中的某一列
- 某一列元素全部修改成同一个数值:只需要把一个常量赋值给data[‘column_name’]即可把这一列全部改成这个数。
- 某一列元素按照列表或者range修改为对应数值:赋值方法和第1中方法一样,等号右边是range数据类型,注意range的参数是左边闭区间右边开区间的等差数列。
- 某一列元素传入Series数组修改为指定值。需要先定义一个指定值和index参数的Series,而且这个index参数要和DF数据中的index一致。
这也再次证明了其实DF数据就是Series的升级版(多维Series),每一列和index列组合就可以认为是一个Series数组(一维)。
import pandas as pd
dict_data = {
'student':["Li Lei","Han Meimei","Tom"],
'score' :[95,98,92],
'gender':['M','F','M']
}
DF_data = pd.DataFrame(dict_data,columns=['gender','student','score'],index=['a','b','c'])
print(DF_data)
DF_data['score']=95
print(DF_data)
DF_data['score']=range(82,85) #注意是半包开闭区间,大于等于82,小于85的公差为1的等差数列
print(DF_data)
score = pd.Series([93,97,83],index=['b','c','a'])
DF_data['score']=score
print(DF_data)
运行之后,我们可以得到以下结果:
gender student score
a M Li Lei 95
b F Han Meimei 98
c M Tom 92
gender student score
a M Li Lei 95
b F Han Meimei 95
c M Tom 95
gender student score
a M Li Lei 82
b F Han Meimei 83
c M Tom 84
gender student score
a M Li Lei 83
b F Han Meimei 93
c M Tom 97
[Finished in 4.8s]
运行结果和我们的预期是一致的。