簡體   English   中英

按值過濾和划分列

[英]Filter and divide column by value

我想在 groupby id = 2 時將a列除以 10 並更新原始df 不太清楚如何做到這一點!

df

            date  id   a    b    c   d
    0   1/1/2000   1  10   20  10.0  11
    1   1/1/2000   2  100  21   1.0  11
    2   1/1/2000   3  15   20  14.0  11
    3   1/1/2000   4  10   24  13.0  11
    4   1/2/2000   1  10   25  10.0  11
    5   1/2/2000   2  100  20  13.0  15
    6   1/2/2000   3  10   26  22.0  11
    7   1/2/2000   4  10   20  16.0  13
    8   1/3/2000   1  10   20  10.0  11
    9   1/3/2000   2  100  20  13.0  11
    10  1/3/2000   3  10   20  18.0  11
    11  1/3/2000   4  10   20  10.0  11

所需的數據框

        date  id   a    b    c   d
0   1/1/2000   1  10   20  10.0  11
1   1/1/2000   2  10   21   1.0  11
2   1/1/2000   3  15   20  14.0  11
3   1/1/2000   4  10   24  13.0  11
4   1/2/2000   1  10   25  10.0  11
5   1/2/2000   2  10   20  13.0  15
6   1/2/2000   3  10   26  22.0  11
7   1/2/2000   4  10   20  16.0  13
8   1/3/2000   1  10   20  10.0  11
9   1/3/2000   2  10   20  13.0  11
10  1/3/2000   3  10   20  18.0  11
11  1/3/2000   4  10   20  10.0  11

沿第一個軸使用布爾索引並就地更新列a

df.loc[df['id'].eq(2), 'a'] /= 10

使用 lambda

df['a'] = df.apply(lambda x: x['a']/100 if x['id']==2 else x['a'],axis=1)
df

+----------+------+-----+-----+-----+-----+
|          |   id |   a |   b |   c |   d |
+==========+======+=====+=====+=====+=====+
| 1/1/2000 |    1 |  10 |  20 |  10 |  11 |
| 1/1/2000 |    2 |   1 |  21 |   1 |  11 |
| 1/1/2000 |    3 |  15 |  20 |  14 |  11 |
| 1/1/2000 |    4 |  10 |  24 |  13 |  11 |
| 1/2/2000 |    1 |  10 |  25 |  10 |  11 |
| 1/2/2000 |    2 |   1 |  20 |  13 |  15 |
| 1/2/2000 |    3 |  10 |  26 |  22 |  11 |
| 1/2/2000 |    4 |  10 |  20 |  16 |  13 |
| 1/3/2000 |    1 |  10 |  20 |  10 |  11 |
| 1/3/2000 |    2 |   1 |  20 |  13 |  11 |
| 1/3/2000 |    3 |  10 |  20 |  18 |  11 |
| 1/3/2000 |    4 |  10 |  20 |  10 |  11 |
+----------+------+-----+-----+-----+-----+

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM