根据位数查找行

Boj*_*vić 0 python data-manipulation dataframe pandas

我正在处理一个有 2000 行的数据框,但为此目的,我创建了这个简单的数据框,我想在其中查找 col2 列中包含 3 个或更少数字的所有行。这是数据框:

\n
d = {'col1': [10000, 2000,300,4000,50000], 'col2': [10, 20000, 300, 4000, 100]}\ndf = pd.DataFrame(data=d)\n\n    col1    col2\n0   10000   10\n1   2000    20000\n2   300     300\n3   4000    4000\n4   50000   100\n\nArea     int64\nPrice    int64\ndtype: object\n
Run Code Online (Sandbox Code Playgroud)\n

之后,我想创建一个新列 col3,其中来自那些过滤行(具有 3 个或更少数字)的 col2 列的值将乘以它们的值 \xe2\x80\x8b\xe2\x80\x8b 来自 col1 列,而其他行保持不变。

\n

这是预期的输出:

\n
    col1    col2    col3\n0   10000   10      100000\n1   2000    20000   20000\n2   300     300     90000\n3   4000    4000    4000\n4   5000    100     500000\n\ncol1    int64\ncol2    int64\ncol3    int64\ndtype: object\n
Run Code Online (Sandbox Code Playgroud)\n

提前致谢!

\n

raf*_*elc 5

简单应用np.where

df['col3'] = np.where(df.col2 < 1000, df.col2 * df.col1, df.col2)
Run Code Online (Sandbox Code Playgroud)
    col1   col2      col3
0  10000     10    100000
1   2000  20000     20000
2    300    300     90000
3   4000   4000      4000
4   5000    100    500000
Run Code Online (Sandbox Code Playgroud)