簡體   English   中英

對 dataframe 中不相鄰的多個列進行切片

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

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