熊猫-替换特定列中的值

时间:2018-12-11 07:52:21

标签: pandas

如果大于0,我尝试替换数据框中特定列的所有值。我尝试了以下操作,但它替换了该特定行的所有列。

df.loc[(df['count'] > 0)] = 1

谁能帮忙,谢谢..

3 个答案:

答案 0 :(得分:1)

您已经关闭,需要在第二个参数中指定列:

df.loc[df['count'] > 0, 'count'] = 1

您还可以指定多个列:

df.loc[df['count'] > 0, ['count', 'another col']] = 1

另一个解决方案是:

df['count'] = np.where(df['count'] > 0, 1, df['count'])
#alternative    
#df['count'] = df['count'].mask(df['count'] > 0, 1)

答案 1 :(得分:0)

df.loc[(df['count'] > 0), 'count'] = 1

我建议本教程有关.loc https://www.youtube.com/watch?v=xvpNA7bC8cs

答案 2 :(得分:0)

尝试以下代码示例;更容易理解:

import pandas as pd
import numpy as np

data = np.random.randint(low=-2, high=3, size=10)
df = pd.DataFrame(data=data, columns=['value'])
df['new_value'] = df.value.apply(lambda i : i if i < 0 else 1)
print(df)

结果: enter image description here