gpt4 book ai didi

python - 如何使用标签数组和对象切片的混合按列对 pandas 数据框进行切片?

转载 作者:行者123 更新时间:2023-11-30 23:29:42 25 4
gpt4 key购买 nike

有没有办法对混合“标签数组”和“对象切片”的 pandas 数据帧进行切片。我在这里找不到示例 Indexing and Selecting Data

标签列表或数组 ['a', 'b', 'c']

带有标签“a”:“f”的切片对象

这是我尝试做的一个示例,而无需手动列出所有内容。

import pandas as pd

data = {'Week': [201301, 201301, 201302, 201302, 201303],
'Product': ['coke', 'fanta', 'coke' ,'sprite' ,'pepsi'],
'month1': [12, 1, 3, 12, 11],'month2': [12, 1, 3, 12, 11],
'month3': [12, 1, 3, 12, 11],'month4': [12, 1, 3, 12, 11],
'month5': [12, 1, 3, 12, 11]}
df = pd.DataFrame(data)

print df

输出:

   Product    Week  month1  month2  month3  month4  month5
0 coke 201301 12 12 12 12 12
1 fanta 201301 1 1 1 1 1
2 coke 201302 3 3 3 3 3
3 sprite 201302 12 12 12 12 12
4 pepsi 201303 11 11 11 11 11


df= df.loc[:,'Product':'month1']

输出:

  Product    Week  month1
0 coke 201301 12
1 fanta 201301 1
2 coke 201302 3
3 sprite 201302 12
4 pepsi 201303 11

print df

我想要输出的是:

Product    Week  month1    month4  month5
0 coke 201301 12 12 12
1 fanta 201301 1 1 1
2 coke 201302 3 3 3
3 sprite 201302 12 12 12
4 pepsi 201303 11 11 11

我如何操作这行代码:

     df= df.loc[:,'Product':'month1']

像这样(但有效):

     df= df.loc[:,['Product':'month1'] and ['month4','month5']]

最佳答案

使用一些内部方法。本质上构造您想要的索引,然后使用 .loc 将其选择出来。

In [21]: df.loc[:,pd.Index(['Product','Week']) + df.columns[df.columns.slice_indexer('month2','month4')]]
Out[21]:
Product Week month2 month3 month4
0 coke 201301 12 12 12
1 fanta 201301 1 1 1
2 coke 201302 3 3 3
3 sprite 201302 12 12 12
4 pepsi 201303 11 11 11

[5 rows x 5 columns]

关于python - 如何使用标签数组和对象切片的混合按列对 pandas 数据框进行切片?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21001041/

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