[英]Slice mutilple columns that are not next to each other in dataframe
我想切割彼此相隔幾列的牆面柱。 我正在嘗試編寫如此簡單的代碼,而不必重復編寫代碼,例如:
df
(參見下面的示例)其中列從 A 到 H,許多行包含一些數據 (x)。
如何切片多個隨機間隔的列,例如 A、D、E、G,全部以最少的代碼量進行,即我不想重寫 loc 代碼(即df.loc['A'], df.loc['C:E'], df.loc['G']
)?
我可以生成一個列表並循環遍歷它還是有更短/更快的方法?
最終我的目標是從主 dataframe 中刪除選定的列。
A B C D E F G H
0 x x x x x x x x
1 x x x x x x x x
2 x x x x x x x x
3 x x x x x x x x
4 x x x x x x x x
……
您可以利用.iloc
方法通過其 position 而不是名稱來獲取列,例如:
import pandas as pd
df = pd.DataFrame({'A':[1,2,3],'B':[4,5,6],'C':[7,8,9],'D':[10,11,12],'E':[13,14,15]})
df2 = df.iloc[:, [0,2,4]]
print(df2)
output:
A C E
0 1 7 13
1 2 8 14
2 3 9 15
如果您只需要df
中具有y
列的x
隨機列,則可以使用random.sample
例如,如果您想要 5 列中的 3 列:
import random
cols = sorted(random.sample(range(0,5),k=3))
給出cols
這是三個數字的排序列表(由於列的sorted
順序將被保留)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.