gpt4 book ai didi

python - 选择 pandas 列 'a' 、 'b' 和 'e' 到 'g'

转载 作者:太空宇宙 更新时间:2023-11-04 08:32:10 26 4
gpt4 key购买 nike

假设我有一个包含“a”、“b”、“c”、“d”、“e”、“f”、“g”列的 pandas 数据框。我想选择“a”、“b”和“e”到“g”列。我不想将列名“e”和“g”显式指定为“e”、“f”、“g”,而是使用类似“e”:“g”的名称。有什么办法可以将这些 'a'、'b' 和 'e':'g' 合二为一吗?

我现在拥有的是使用 pd.concat()

pd.concat([df[:, 'a', 'b']), df[:, ['e': 'g']]], axis = 1)

最佳答案

使用DataFrame.filter :

df = pd.DataFrame({'a':list('abcdef'),
'b':[4,5,4,5,5,4],
'c':[7,8,9,4,2,3],
'd':[1,3,5,7,1,0],
'e':[5,3,6,9,2,4],
'f':list('aaabbb'),
'g':[0,3,5,7,1,0],
'h':[2,30,50,7,1,0],})

df = df.filter(regex='[ab]|[e-g]')
print (df)

a b e f g
0 a 4 5 a 0
1 b 5 3 a 3
2 c 4 6 a 5
3 d 5 9 b 7
4 e 5 2 b 1
5 f 4 4 b 0

另一种解决方案:

rng = df.loc[:, 'e': 'g'].columns.tolist()
#alternative
#rng = df.columns[df.columns.get_loc('e'): df.columns.get_loc('g') + 1].tolist()

cols = ['a','b'] + rng
df = df[cols]
print (df)

a b e f g
0 a 4 5 a 0
1 b 5 3 a 3
2 c 4 6 a 5
3 d 5 9 b 7
4 e 5 2 b 1
5 f 4 4 b 0

关于python - 选择 pandas 列 'a' 、 'b' 和 'e' 到 'g',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52034522/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com