用 NaN 替换最后 n 行
Replace n last rows with NaN
我有一个数据框df1
:
df1 =
index col1 col2
1 1 2
2 2 3
3 3 4
4 4 5
5 5 6
6 6 7
例如,我想做的是用 NaN 替换 col2
中的最后两行,因此生成的数据框将是:
index col1 col2
1 1 2
2 2 3
3 3 4
4 4 5
5 5 NaN
6 6 NaN
使用 DataFrame.iloc
, so need position by Index.get_loc
列的位置索引:
df.iloc[-2:, df.columns.get_loc('col2')] = np.nan
或使用带索引的 DataFrame.loc
df.index
:
df.loc[df.index[-2:], 'col2'] = np.nan
print (df)
col1 col2
1 1 2.0
2 2 3.0
3 3 4.0
4 4 5.0
5 5 NaN
6 6 NaN
最后一个如果需要整数列:
df['col2'] = df['col2'].astype('Int64')
print (df)
col1 col2
1 1 2
2 2 3
3 3 4
4 4 5
5 5 <NA>
6 6 <NA>
试一试:
df.col2[-2:] = np.NaN
看来post要集齐所有可能的方法
df["col2"].iloc[-2:,] = np.nan
4 种方法。方法 3 和 4 对我来说似乎是最好的:
1)
df.at[5,'col2']=math.nan
df.at[6,'col2']=math.nan
df.loc[5,'col2']=np.nan
df.loc[6,'col2']=np.nan
来自上面的回答
df.col2[-2:]=np.nan
df['col2'][-2:]=np.nan
我有一个数据框df1
:
df1 =
index col1 col2
1 1 2
2 2 3
3 3 4
4 4 5
5 5 6
6 6 7
例如,我想做的是用 NaN 替换 col2
中的最后两行,因此生成的数据框将是:
index col1 col2
1 1 2
2 2 3
3 3 4
4 4 5
5 5 NaN
6 6 NaN
使用 DataFrame.iloc
, so need position by Index.get_loc
列的位置索引:
df.iloc[-2:, df.columns.get_loc('col2')] = np.nan
或使用带索引的 DataFrame.loc
df.index
:
df.loc[df.index[-2:], 'col2'] = np.nan
print (df)
col1 col2
1 1 2.0
2 2 3.0
3 3 4.0
4 4 5.0
5 5 NaN
6 6 NaN
最后一个如果需要整数列:
df['col2'] = df['col2'].astype('Int64')
print (df)
col1 col2
1 1 2
2 2 3
3 3 4
4 4 5
5 5 <NA>
6 6 <NA>
试一试:
df.col2[-2:] = np.NaN
看来post要集齐所有可能的方法
df["col2"].iloc[-2:,] = np.nan
4 种方法。方法 3 和 4 对我来说似乎是最好的:
1)
df.at[5,'col2']=math.nan
df.at[6,'col2']=math.nan
df.loc[5,'col2']=np.nan
df.loc[6,'col2']=np.nan
来自上面的回答
df.col2[-2:]=np.nan
df['col2'][-2:]=np.nan