簡體   English   中英

在數據框中動態創建列

[英]Dynamically create columns in a dataframe

我有一個如下數據框:

   a  b  a1  b1
0  1  6  10  20
1  2  7  11  21
2  3  8  12  22
3  4  9  13  23
4  5  2  14  24

其中a1b1ab動態創建。 我們也可以動態創建百分比列嗎? 不變的一件事是創建的列將在名稱后添加1

預期輸出:

    a   b   a1  b1  a%  b%
0   0   6   10  20  0   30
1   2   7   11  21  29  33
2   3   8   12  22  38  36
3   4   9   13  23  44  39
4   5   2   14  24  250 8

通過將兩列分開並通過 DataFrame.add_suffix 重命名列來創建新的DataFrame.add_suffix ,最后由DataFrame.join附加到原始數據:

cols = ['a','b']
new = [f'{x}1' for x in cols]

df = df.join(df[cols].div(df[new].to_numpy()).mul(100).add_suffix('%'))
print (df)

   a  b  a1  b1         a%         b%
0  1  6  10  20  10.000000  30.000000
1  2  7  11  21  18.181818  33.333333
2  3  8  12  22  25.000000  36.363636
3  4  9  13  23  30.769231  39.130435
4  5  2  14  24  35.714286   8.333333

暫無
暫無

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

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