gpt4 book ai didi

python - Pandas - 基于条件的第一行和最后一行

转载 作者:太空宇宙 更新时间:2023-11-04 02:54:19 25 4
gpt4 key购买 nike

我正在尝试解析 Excel 文件。我在数据框中有文件,我希望标题行基于一个值(在这种情况下,标题从单元格 == 'Hour' 开始)

此外,我希望数据帧在单元格 == '所有固定期间' 之前的行结束。我不能使用 where cell == '12:00 PM' 因为每个 Excel 文件都有不同的结束时间值。

这是我的数据框的样子:

df1 = pd.DataFrame(
[['Business Dates','3/15/2017'],
['Locations','ABC Location'],
['Breakfast',5073.35],
['Lunch',1489.45],
['PM',129.93],
['Hour','Net Sales'],
['6:00 AM',11.56],
['7:00 AM',142.36],
['8:00 AM',153.54],
['9:00 AM',200.34],
['10:00 AM',240.33],
['11:00 AM',110.12],
['12:00 PM',114.11],
['All Fixed Periods',]],
columns=['Service Performance Summary','Sales'])

df1

Service Performance Summary Sales
0 Business Dates 3/15/2017
1 Locations ABC Location
2 Breakfast 5073.35
3 Lunch 1489.45
4 PM Break 129.93
5 Hour Net Sales
6 6:00 AM 11.56
7 6:00 AM 150.34
8 7:00 AM 142.36
9 8:00 AM 153.54
10 9:00 AM 200.34
11 10:00 AM 240.33
12 11:00 AM 110.12
13 12:00 PM 114.11
14 All Fixed Periods None

进入:

[['6:00 AM',11.56],
['7:00 AM',142.36],
['8:00 AM',153.54],
['9:00 AM',200.34],
['10:00 AM',240.33],
['11:00 AM',110.12],
['12:00 PM',114.11],],
columns=['Hour','Net Sales'])

Hour Net Sales
1 6:00 AM 11.56
2 6:00 AM 150.34
3 7:00 AM 142.36
4 8:00 AM 153.54
5 9:00 AM 200.34
6 10:00 AM 240.33
7 11:00 AM 110.12
8 12:00 PM 114.11

我最接近的是:

df.columns = df.iloc[5]
df = df[6:]

唯一的问题是“小时”可能会在不同的报告中以不同的索引开始。

最佳答案

我会使用 np.where 来定位第一个位置

vals = df1.values
col1 = vals[:, 0]
header_start = np.where(col1 == 'Hour')[0][0]
eodf = np.where(col1 == 'All Fixed Periods')[0][0]

pd.DataFrame(vals[header_start + 1:eodf], columns=vals[header_start])

Hour Net Sales
0 6:00 AM 11.56
1 7:00 AM 142.36
2 8:00 AM 153.54
3 9:00 AM 200.34
4 10:00 AM 240.33
5 11:00 AM 110.12
6 12:00 PM 114.11

也可以使用argmax

vals = df1.values
col1 = vals[:, 0]
header_start = (col1 == 'Hour').argmax()
eodf = (col1 == 'All Fixed Periods').argmax()

pd.DataFrame(vals[header_start + 1:eodf], columns=vals[header_start])

关于python - Pandas - 基于条件的第一行和最后一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42907597/

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