根据特定索引将值设置为新列
set value to new column according to specific index
我想在 df
中创建新的列名 pred_date
并根据特定索引设置值。
例如对于索引 [1, 2, 3]
我想将值设置为 date
列中的值。
df
:
date label
1 1.1 1
2 2.1 0
3 3.1 1
4 4.1 1
预期输出df
:
date label pred_date
1 1.1 1 1.1
2 2.1 0 2.1
3 3.1 1 3.1
4 4.1 1 Nan
您可以使用 index.isin
+ where
:
df['pred_date'] = df['date'].where(df.index.isin([1,2,3]))
输出:
date label pred_date
1 1.1 1 1.1
2 2.1 0 2.1
3 3.1 1 3.1
4 4.1 1 NaN
使用pd.Series.where
:
df['pred'] = df['date'].where(df.index != 4)
输出:
>>> df
date label pred
1 1.1 1 1.1
2 2.1 0 2.1
3 3.1 1 3.1
4 4.1 1 NaN
你实际上可以只使用 .loc
:
df.loc[[1, 2, 3], 'pred'] = df['date']
输出:
>>> df
date label pred
1 1.1 1 1.1
2 2.1 0 2.1
3 3.1 1 3.1
4 4.1 1 NaN
或者:
df['pred'] = df.loc[[1, 2, 3], 'date']
我想在 df
中创建新的列名 pred_date
并根据特定索引设置值。
例如对于索引 [1, 2, 3]
我想将值设置为 date
列中的值。
df
:
date label
1 1.1 1
2 2.1 0
3 3.1 1
4 4.1 1
预期输出df
:
date label pred_date
1 1.1 1 1.1
2 2.1 0 2.1
3 3.1 1 3.1
4 4.1 1 Nan
您可以使用 index.isin
+ where
:
df['pred_date'] = df['date'].where(df.index.isin([1,2,3]))
输出:
date label pred_date
1 1.1 1 1.1
2 2.1 0 2.1
3 3.1 1 3.1
4 4.1 1 NaN
使用pd.Series.where
:
df['pred'] = df['date'].where(df.index != 4)
输出:
>>> df
date label pred
1 1.1 1 1.1
2 2.1 0 2.1
3 3.1 1 3.1
4 4.1 1 NaN
你实际上可以只使用 .loc
:
df.loc[[1, 2, 3], 'pred'] = df['date']
输出:
>>> df
date label pred
1 1.1 1 1.1
2 2.1 0 2.1
3 3.1 1 3.1
4 4.1 1 NaN
或者:
df['pred'] = df.loc[[1, 2, 3], 'date']