我想将此列添加到已经存在的数据框中。
df['THRESHOLD'] = df['AVG_CNT'] * 3
cols = ['AVG_CNT', 'STD_DEV', 'THRESHOLD']
df[cols] = df[cols].round(1)
print (df)
我想将列四舍五入为一个有效数字。除新的df['THRESHOLD']
列外,所有列均四舍五入。为什么会这样?
df.info()的结果
<class 'pandas.core.frame.DataFrame'>
Int64Index: 16 entries, 0 to 15
Data columns (total 4 columns):
AVG_CNT 16 non-null float64
ID 16 non-null int64
STD_DEV 16 non-null float64
THRESHOLD 16 non-null float64
dtypes: float64(3), int64(1)
memory usage: 640.0 bytes
None
答案 0 :(得分:1)
您可以使用round
进行此操作。
您可以通过几种方式来实现。
df = df.round({'AVG_CNT': 1, 'STD_DEV': 1, 'THRESHOLD': 1})
或像您一样:
cols = ['AVG_CNT', 'STD_DEV', 'THRESHOLD']
df[cols] = df[cols].round(1)
或
df[['AVG_CNT', 'STD_DEV', 'THRESHOLD']] = df[['AVG_CNT', 'STD_DEV', 'THRESHOLD']].round(1)
或使用apply
和Series.round
df[['AVG_CNT', 'STD_DEV', 'THRESHOLD']] = df[['AVG_CNT', 'STD_DEV', 'THRESHOLD']].apply(lambda x: pd.Series.round(x, 1))
或
df[cols] = df[cols].apply(lambda x: pd.Series.round(x, 1))