gpt4 book ai didi

python - 如何按列名称对数据框的多个部分进行切片?

转载 作者:行者123 更新时间:2023-12-02 12:47:32 25 4
gpt4 key购买 nike

如何获取第一列,然后添加另一个切片?

例如:

import pandas as pd
df = pd.DataFrame(pd.np.random.rand(6,6), columns = list('abcdef'))

a b c d e f
0 0.147163 0.710360 0.069732 0.180949 0.694066 0.639505
1 0.771643 0.094805 0.371702 0.177538 0.089168 0.420331
2 0.431394 0.790537 0.378049 0.402930 0.350409 0.827950
3 0.421411 0.451595 0.703630 0.469526 0.612122 0.076728
4 0.854117 0.302925 0.664647 0.664098 0.959504 0.637122
5 0.659791 0.525526 0.007151 0.448761 0.738571 0.349142

我正在尝试获取列 a ,以及 c 之后的所有列.

这只给我列 c,d,e,f :

df.loc[:'a', 'c':]

这根本不起作用:

df.loc['a':'a', 'c':]

我又做了几次尝试,但它们只是随机猜测,我真的无法在网上找到解决方案。

注意:我正在使用一个巨大的真实数据框,因此编写像 df.loc[:,['a','c','d','e','f]] 这样的单独列名称是不切实际的。

最佳答案

我理解问题如何可以按列名称进行选择。

不容易,因为首先需要 Index.get_loc 的位置,然后通过 numpy.r_ select 将其传递给 DataFrame.iloc :

a = df.columns.get_loc('a')
b = df.columns.get_loc('c')
c = len(df.columns)

df = df.iloc[:, np.r_[a, b:c]]
print (df)
a c d e f
0 0.210653 0.218035 0.845753 0.456271 0.279802
1 0.932892 0.909715 0.043418 0.707115 0.483889
2 0.444221 0.040683 0.332754 0.947120 0.617660
3 0.368875 0.206132 0.165066 0.361817 0.863353
4 0.509402 0.950252 0.815966 0.322974 0.972098
5 0.987351 0.655923 0.405653 0.257348 0.082653

关于python - 如何按列名称对数据框的多个部分进行切片?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58997319/

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