如何将依赖于一列的条件陈述应用于另一列?

时间:2019-05-31 15:21:44

标签: python pandas dataframe

我正在处理输入数据,需要一些格式。在此数据的1,000行长的部分中,如果cat列大于0,则我需要kitty列为1。在同一数据的其他1,000行部分中,如果cat列小于0,则I需要小猫列为1。否则,小猫列应为0。

我已经看到了有关替换pandas数据框对象的列和公式的建议,但是我在文档或此处的帖子中都没有看到有关如何将条件函数应用于列的建议。

我还避免替换数据中的整个行部分。我只想将此公式应用于一列。

这就是我尝试过的。这样做的明显缺陷是它不会将这些更改应用于整个数据框。

def kitten_column(dataframe, columnnumber):

    data1k, data3k = [], []

    data1k = dataframe.iloc[1000:2000,:]
    data3k = dataframe.iloc[3000:40000,:] 

    dataframe.insert(columnnumber, "kitten", 0, True)

    data1k.loc[data1k["cat"] < 0, "kitten"] = 1
    data3k.loc[data3k["cat"] > 0, "kitten"] = 1

我的目标是将其应用于原始数据框,而无需调用附加或连接,但是上面的代码仅将其应用于data1k和data3k数据框。

1 个答案:

答案 0 :(得分:0)

您正在寻找的dude arent:

df.loc[(df["cat"] < 0) & (df.index > 1000) & (df.index < 2000), "kitten"] = 1
df.loc[(df["cat"] > 0) & (df.index > 3000) & (df.index < 40000), "kitten"] = 1