python - 用 Pandas 中的另一个值替换某些列中的所有负值

标签 python pandas dataframe replace

假设我有四个连续排列的列作为数据框的一部分,我想用另一个值(比方说 -5)替换这 4 列中的所有负值,我该怎么做?

T1   T2  T3  T4
20   -5  4   3
85  -78  34  21
-45  22  31  75
-6   5   7  -28

从逻辑上讲,我希望这会奏效。但是,事实并非如此。

for i in df.iloc[:,df.columns.get_loc("T1"):df.columns.get_loc("T1")+4]<0:
    for j in df[i]:
        if j<0:
            j=-5

最佳答案

您可以通过应用条件语句来使用索引

cols = ['T1','T2','T3','T4']
df[df[cols] < 0] = -5

输出

In [35]: df
Out[35]:
     T1  T2  T3  T4
  0  20  -5   4   3
  1  85  -5  34  21
  2  -5  22  31  75
  3  -5   5   7  -5

在您的示例中,您只是替换了变量的值。您需要使用 at 方法替换一个单元格的值。

for i in df.iloc[:,df.columns.get_loc("T1"):df.columns.get_loc("T1")+4]<0:
for index, j in enumerate(df[i]):
    if j<0:
        df.at[index, i] = -5

关于python - 用 Pandas 中的另一个值替换某些列中的所有负值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50148374/

相关文章:

python - 如何使用Python将多个Excel文件中的数据合并到一个Excel文件中?

python - Python 中的凯撒密码函数

python - 如何获得与 R 中类似的 Pandas 数据框摘要?

python - 如何按列名称对数据框的多个部分进行切片?

Python Pandas 条形图不显示颜色

python - 如何使用 python 从非结构化 HTML 创建结构化数组

python - 为什么 pickle + gzip 在重复数据集上优于 h5py?

python - Pandas 和 PanelOLS : Only 2 level multiindex are supported

r - 更改 R 中数据框列表中的列值

python - 将变量存储为另一个变量的属性是个好习惯吗?