在不同行中使用不同值向 DataFrame 添加新列

Adding a new column to DataFrame with different values in different row

我有一个 DataFrame df,其中有 50 列,它有 28800 行。我想添加一个新列 col_new,它在 2880 to 576012960 to 1584023040 to 25920 的每一行中都具有值 0。所有其他行都将具有值 1.

我该怎么做?

df = pd.DataFrame([i for i in range(28800)])
df["new_col"] = 1
zeros_bool = [(
    (i>=(2880-1) and i<5760) or (i>=(12960-1) and i<15840) or (i>=(23040-1) and i<25920)
) for i in range(28800)]
df.loc[zeros_bool,"new_col"] = 0

相信你正在寻找的实际上在这里得到了回答:Add column in dataframe from list

myList = [1,2,3,4,5]
print(len(df)) # 50
df['new_col'] = mylist
print(len(df)) # 51

或者,您可以像这样设置列表的一部分的值:

data['new_col'] = 1
data.loc[2880:5760, 'new_col'] = 0
data.loc[12960:15840, 'new_col'] = 0
data.loc[23040:25920, 'new_col'] = 0