我这里有一个示例数据集。在实际情况中,它有一个训练和测试数据集。它们都有大约300列和800行。我想根据一列中的某个值过滤掉所有这些行,然后将该行中从第3列到第50列的所有值设置为零。我怎么做
Sample dataset:
import pandas as pd
data = {'Name':['Jai', 'Princi', 'Gaurav','Princi','Anuj','Nancy'],
'Age':[27, 24, 22, 32,66,43],
'Address':['Delhi', 'Kanpur', 'Allahabad', 'Kannauj', 'Katauj', 'vbinauj'],
'Payment':[15,20,40,50,3,23],
'Qualification':['Msc', 'MA', 'MCA', 'Phd','MA','MS']}
df = pd.DataFrame(data)
df
以下是示例数据集的输出:
Name Age Address Payment Qualification
0 Jai 27 Delhi 15 Msc
1 Princi 24 Kanpur 20 MA
2 Gaurav 22 Allahabad 40 MCA
3 Princi 32 Kannauj 50 Phd
4 Anuj 66 Katauj 3 MA
5 Nancy 43 vbinauj 23 MS
如您所见,在第一列中,这些值==“Princi”,因此,如果我找到名为column value==“Princi”的行,那么我希望将这些行中的列“Address”和“Payment”设置为零
以下是预期输出:
Name Age Address Payment Qualification
0 Jai 27 Delhi 15 Msc
1 Princi 24 0 0 MA #this row
2 Gaurav 22 Allahabad 40 MCA
3 Princi 32 0 0 Phd #this row
4 Anuj 66 Katauj 3 MA
5 Nancy 43 vbinauj 23 MS
在我的真实数据集中,我尝试:
train.loc[:, 'got':'tod']# get those columns # I could select all those columns
and train.loc[df['column_wanted'] == "that value"] # I got all those rows
但是我怎样才能把它们结合起来呢?谢谢你的帮助
使用
loc
访问器df.loc[boolean selection, columns]
相关问题 更多 >
编程相关推荐