Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 更改数据框中的值,但保留日期列_Python_Pandas_Dataframe_Replace - Fatal编程技术网

Python 更改数据框中的值,但保留日期列

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

我有一个数据帧中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以上的所有值。我已经成功地做到了这一点,但是我得到的新数据帧缺少第一行(日期)。我想它被忽略了,因为它不是一个数值?如何获得一个新的数据框,其中包含已更正的数据,并且仍然保留日期列

我试过这个问题的答案:

并编写了以下代码:

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),它工作得非常出色!