2016-09-30 140 views
2

假设我们有一个包含6列的数据框。对于其中3列的子集,我们希望将3的实例更改为1.您能否提出一种优雅的方式来实现? 只需写一行像:Python:根据列名称和条件替换数据框架值

df['A'][df.A == 3] = 1 

是在我的真实数据低效的,因为尺寸大得多(例如,更改50出来的200个变量)。

也许我们可以在这个例子中工作:

df = pd.DataFrame(np.random.randint(0,10,size=(100, 6)), columns=list('ABCDEF')) 

我们想要的3个值改为1列A,B和C.感谢。

回答

0

您可以遍历列的子集并使用loc进行分配。

subset cols = ['A', 'B', 'C'] # For example. 
for col in subset_cols: 
    df.loc[df[col] == 3, col] = 1 
+0

完美,谢谢(upvoted我还没有15分) – JPico6