假设我有一个这样的数据框:
# importing pandas and numpy
import pandas as pd
import numpy as np
# create a sample dataframe
data = pd.DataFrame({
'A' : [ 1, 2, 3, -1, -2, 3],
'B' : [ -1, -2, -3, 12, -12, -3],
'C' : [ 1, -2, 3, -1, -2, 13],
'D' : [ -1, 2, 3, -1, 2, -3],
'E' : [ 1, 12, 3, 11, -2, 3]
})
# view the data
data
这给出了:
A B C D E
0 1 -1 1 -1 1
1 2 -2 -2 2 12
2 3 -3 3 3 3
3 -1 12 -1 -1 11
4 -2 -12 -2 2 -2
5 3 -3 13 -3 3
现在,我的问题是如何将 if 语句应用于所有列和行,从而导致表的所有值都被 if 语句值替换。
我要应用的等式是:
if x <= 0:
0
else:
x
因此,在这种情况下,结果数据将消除所有负值:
A B C D E
0 1 0 1 0 1
1 2 0 0 2 12
2 3 0 3 3 3
3 0 12 0 0 11
4 0 0 0 2 0
5 3 0 13 0 3
我尝试使用以下 loc 并将它们应用于 A、B、C、D 和 E:
data.loc[(data.A <= 0), ['A']] = 0
data.loc[(data.A > 0), ['A']] = data.A
但这不是最佳解决方案,因为我的列可能不止 A、B、C、D 和 E。此外,有时我需要解决其他不等式。
任何指导将不胜感激。
谢谢!