Python 更改数据框中的值,但保留日期列
我有一个数据帧中7列2557行的数据集Python 更改数据框中的值,但保留日期列,python,pandas,dataframe,replace,Python,Pandas,Dataframe,Replace,我有一个数据帧中7列2557行的数据集 Date Inlet 1 Inlet 2 Inlet 3 Inlet 4 Inlet 5 Inlet 6 01-01-13 0.40 0.41 0.36 10.39 0.37 0.47 02-01-13 -15 0.56 71.90 250.98 90.67 40.89 ... 我试图用0替换所有负值,用192替换192
Date Inlet 1 Inlet 2 Inlet 3 Inlet 4 Inlet 5 Inlet 6
01-01-13 0.40 0.41 0.36 10.39 0.37 0.47
02-01-13 -15 0.56 71.90 250.98 90.67 40.89
...
我试图用0替换所有负值,用192替换192以上的所有值。我已经成功地做到了这一点,但是我得到的新数据帧缺少第一行(日期)。我想它被忽略了,因为它不是一个数值?如何获得一个新的数据框,其中包含已更正的数据,并且仍然保留日期列
我试过这个问题的答案:
并编写了以下代码:
hrt_data = pd.read_csv(hrtdata_file)
num_hrt = hrt_data._get_numeric_data()
num_hrt[num_hrt < 0] = 0
num_hrt[num_hrt > 192] = 192
hrt\u data=pd.read\u csv(hrtdata\u文件)
num_hrt=hrt_数据。_获取数值_数据()
num_-hrt[num_-hrt<0]=0
num_hrt[num_hrt>192]=192
仅用于数字数据,然后与“仅分配回数字列”一起使用:
print (df)
Date Inlet 1 Inlet 2 Inlet 3 Inlet 4 Inlet 5 col
0 01-01-13 -0.4 500.41 0.36 0.39 0.37 string1
df1 = df.select_dtypes(np.number)
df[df1.columns] = df1.clip(0, 192)
print (df)
Date Inlet 1 Inlet 2 Inlet 3 Inlet 4 Inlet 5 col
0 01-01-13 0.0 192.0 0.36 0.39 0.37 string1
带提取数字列名称的解决方案,谢谢,@yatu:
cols = df.select_dtypes(np.number).columns
df[cols] = df[cols].clip(0, 192)
您共享的数据不足以尝试任何建议。不过,你可以看看熊猫的方法,看看它是否对汉克斯很有帮助!我把我的代码归结为:hrt_data=pd.read_csv(hrtdata_file)cols=hrt_data.select_dtypes(np.number)。columns hrt_data[cols]=hrt_data[cols]。clip(0,192),它工作得非常出色!