[英]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.