簡體   English   中英

熊貓,減去列Dataframe in loop

[英]Pandas, substract columns Dataframe in loop

我是熊貓新手。 我有一個由6列組成的數據框,我想做一個for循環來做到這一點:

-創建一個新列(nc 1)-nc1 =列1-列2

我想對所有列進行迭代,所以最后一個將是:ncx =列5-列6

我可以減去這樣的列:

df['nc'] = df.Column1 - df.Column2

但這在我嘗試執行循環時沒有用,因為我總是必須插入列的名稱。

有人可以告訴我如何將列稱為數字嗎? 謝謝!

In [26]: import numpy as np
    ...: import random
    ...: import pandas as pd
    ...: 
    ...: A = pd.DataFrame(np.random.randint(100, size=(5, 6)))

In [27]: A
Out[27]: 
    0   1   2   3   4   5
0  82  13  17  58  68  67
1  81  45  15  11  20  63
2   0  84  34  60  90  34
3  59  28  46  96  86  53
4  45  74  14  10   5  12

In [28]: for i in range(0, 5):
    ...:     A[(i + 6)] = A[i] - A[(i + 1)]
    ...: 
    ...: 
    ...: A
    ...: 
Out[28]: 
   0   1   2   3   4   5   6   7   8   9   10
0  82  13  17  58  68  67  69  -4 -41 -10   1
1  81  45  15  11  20  63  36  30   4  -9 -43
2   0  84  34  60  90  34 -84  50 -26 -30  56
3  59  28  46  96  86  53  31 -18 -50  10  33
4  45  74  14  10   5  12 -29  60   4   5  -7

In [29]: nc = 1 #The first new column
    ...: A[(nc + 5)] #outputs the first new column
Out[29]: 
0    69
1    36
2   -84
3    31
4   -29

在這里,您不必通過名稱(僅通過列號)來調用它,而只需編寫一個簡單的函數即可調用列+ 5

像這樣:

In [31]: def call_new_column(n):
    ...:     return(A[(n + 5)])
    ...: 
    ...: 
    ...: call_new_column(2)
Out[31]: 
0    -4
1    30
2    50
3   -18
4    60

暫無
暫無

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

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