首页 > 解决方案 > 如何将其转换为新数据框中的列

问题描述

好吧,我正在使用数据框,我只是希望从这里出来的结果将其转换为新数据框中的新列。但是我不知道怎么做。你能帮我吗?谢谢

cont = 12 
for e in df_infl['infl_gen']:
   resultados = (e/df_infl.iloc[cont, 0]) - 1
   resultados = resultados * 100
   cont += 1
if cont >= df_infl.shape[0]:
    print("Ready")
    break

标签: pythonpandasnumpyseries

解决方案


如果我的逻辑正确,您可以简化它并使其更快(因为您避免了循环并且可以利用快速 C++ 实现),如下所示:

df_infl['resultados']= ((df_infl['infl_gen'].shift(12).div(df_infl[name_of_col_0]) - 1) * 100).fillna(0)

对于生成的数据框,我得到以下输出:

    name_col0  infl_gen  new_column_name  resultados
0         127        52         0.000000    0.000000
1         123        68         0.000000    0.000000
2          57       144         0.000000    0.000000
3          57        88         0.000000    0.000000
4         103         4         0.000000    0.000000
5         198       177         0.000000    0.000000
6          79        43         0.000000    0.000000
7         184       183         0.000000    0.000000
8          41        85         0.000000    0.000000
9          15       100         0.000000    0.000000
10         82       105         0.000000    0.000000
11        192       102         0.000000    0.000000
12         74       144       -29.729730  -29.729730
13         53         2        28.301887   28.301887
14         21       132       585.714286  585.714286
15         59        42        49.152542   49.152542
16        161        19       -97.515528  -97.515528
17        132       158        34.090909   34.090909
18        194       110       -77.835052  -77.835052
19        193       171        -5.181347   -5.181347

new_column_name实际上是由 Raghva 发布的逻辑计算的值。因此,您会看到两者的评估结果相同。


推荐阅读