我有一个代码过滤数据,我不想显示从Excel文档使用熊猫 在Jupyter笔记本里。这是英国皇家空军历史性的飞机展示队,2009年的出场时间表。你知道吗
这是我的Python代码:-
import pandas as pd
xls = pd.ExcelFile(r'C:\Users\Edward\Desktop\BBMF Schedules And Master Forum Thread Texts\BBMF Display Schedule 2009.xls')
data = pd.read_excel(xls, sheet_name="Sheet1")
pd.options.display.max_rows = 1000
df = pd.DataFrame(data, columns= ['Venue','A/C','DISPLAY/','Date','BID'])
df[(df['Venue'].str.contains('[a-zA-Z]') & (df['DISPLAY/'].str.contains('DISPLAY') & df['A/C'].str.contains("DHS|DAK|HS|SPIT")) & (df['A/C'] != 'LHS') & (df['A/C'] != 'LANC'))]
我不确定要键入什么,过滤数据,因为当BID列中的数值与下一行BID列中的数值相同时。另外,只有当A/C列中的一架飞机,上面和下面的BID列中的数值相同时,才是DAK,排除这个原则,只有当A/C列中的一行显示DHS时,有人能告诉我,我应该在Python代码中添加什么来启用这个,如果有人能帮忙,我将不胜感激。你知道吗
同样以过滤数据为例,我想:
输出:
145 SCARBOROUGH DAK DISPLAY 2008-05-25 00:00:00 610
150 SCARBOROUGH SPIT DISPLAY 2008-05-25 00:00:00 610
更改为显示以下内容,即将两条线合并在一起:
输出:
SCARBOROUGH DS DISPLAY 2008-05-25 00:00:00 610
以及
输出:
173 TARRANT RUSHDEN HS DISPLAY NaN 132
174 TARRANT RUSHDEN DAK DISPLAY NaN 132
更改为显示:-
输出:
TARRANT RUSHDEN DHS DISPLAY NaN 132
我的意思是换成了表演,对于所有这些事件
不仅仅是这两个场地。你知道吗
以下是我的输出数据示例:-
Venue A/C DISPLAY/ Date BID
25 SHUTTLEWORTH DAK DISPLAY NaN 529
55 KEMBLE DAK DISPLAY NaN 461
69 NORTHWICH SPIT DISPLAY 2008-05-10 00:00:00 514
72 POCKLINGTON SPIT DISPLAY 2009-05-10 00:00:00 821
75 BERLIN DAK DISPLAY 2008-05-12 00:00:00 587
78 MILDENHALL SPIT DISPLAY 2009-05-15 00:00:00 920
93 DUXFORD HS DISPLAY NaN 611
103 CRANWELL HS DISPLAY 2008-05-20 00:00:00 44
145 SCARBOROUGH DAK DISPLAY 2008-05-25 00:00:00 610
150 SCARBOROUGH SPIT DISPLAY 2008-05-25 00:00:00 610
151 CORBRIDGE SPIT DISPLAY NaN 353
167 BRIDGEND-CNX SPIT DISPLAY 2008-05-31 00:00:00 527
173 TARRANT RUSHDEN HS DISPLAY NaN 132
174 TARRANT RUSHDEN DAK DISPLAY NaN 132
179 NORTHOLT SPIT DISPLAY 2009-06-05 00:00:00 870
214 BRIZE NORTON HS DISPLAY NaN 939
218 ROPLEY HS DISPLAY 2008-06-13 00:00:00 355
223 THWAITES HS DISPLAY NaN 364
231 ROPLEY HS DISPLAY NaN 355
240 COSFORD HS DISPLAY 2008-06-14 00:00:00 667
241 QUORN HS DISPLAY NaN 314
244 COSFORD DAK DISPLAY 2008-06-14 00:00:00 NaN
260 REDHILL SPIT DISPLAY NaN 686
269 KEMBLE DAK DISPLAY NaN 316
270 KEMBLE HS DISPLAY NaN 316
280 KEMBLE SPIT DISPLAY 2008-06-21 00:00:00 316
285 KEMBLE DAK DISPLAY 2008-06-21 00:00:00 316
以下是指向.xls(即Excel文档文件)的网站链接:
显然,您需要在我的Python代码中将以下内容更改为您所称的.xls文件。路径,你保存它的地方,在你的电脑上:-
xls = pd.ExcelFile(r'C:\Users\Edward\Desktop\BBMF Schedules And Master Forum Thread Texts\BBMF Display Schedule 2009.xls')
我已将代码的结束位更改为:-
selected = df.loc[df['A/C'] == 'DS', 'DH', 'DHS']
groupby_venue_date = selected.groupby(['Venue', 'BID', 'DISPLAY/'])
aircraft = groupby_venue_date['A/C std'].apply(''.join).rename('Aircraft-combined')
print(aircraft.shape)
pd.DataFrame(aircraft)
但是得到一个:-索引错误:索引器太多消息,当我运行代码时,这是什么意思?是什么导致了这个错误?你知道吗
这是截至2020年1月2日我正在运行的代码:-
import pandas as pd
xls = pd.ExcelFile(r'C:\Users\Edward\Desktop\BBMF Schedules And Master Forum Thread Texts\BBMF Display Schedule 2009.xls')
data = pd.read_excel(xls, sheet_name="Sheet1")
pd.options.display.max_rows = 1000
df = pd.DataFrame(data, columns= ['Venue','A/C','DISPLAY/','Date','BID'])
#df[(df['Venue'].str.contains('[a-zA-Z]') & (df['DISPLAY/'].str.contains('DISPLAY') & df['A/C'].str.contains("DHS|DAK|HS|SPIT")) & (df['A/C'] != 'LHS') & (df['A/C'] != 'LANC'))]
df["Date"].fillna("No Date", inplace = True)
df['A/C'].unique().tolist()
rename_map = {
'DAK': 'D',
'SPIT': 'S',
'LANC': 'L',
'HURRI': 'H',
'PARA': 'P'
}
df['A/C std'] = df['A/C'].replace(rename_map)
print(df['A/C std'].unique().tolist())
#selected = df.loc[df['A/C'] == 'DS', 'DH', 'DHS']
selected = df.loc[df['DISPLAY/'] == 'DISPLAY']
groupby_venue_date = selected.groupby(['Venue', 'BID', 'Date', 'DISPLAY/'])
aircraft = groupby_venue_date['A/C std'].apply(''.join).rename('Aircraft-combined')
print(aircraft.shape)
pd.DataFrame(aircraft)
我不确定我是否完全理解你想做什么,但我会提供一些技术来帮助你解决这个问题。你知道吗
例如,获取列的唯一值列表:
部分问题似乎是处理这些不同飞机组合的速记条目。你说
'DHS'
代表达科他州、喷火和飓风。在尝试合并行之前,最好先处理这些非标准值。一种方法是使用字典替换所有非标准值。你知道吗例如
你可以做任何你想做的事。例如,选择数据的子集:
然后按所选列对行进行分组,并使用字符串连接方法连接飞机代码:
一些值已合并:
更新
通过生成函数并使用
apply
方法,可以对这些代码执行其他操作。你知道吗例如sorting the string或removing duplicated characters(这也恰好对它们进行排序)。你知道吗
相关问题 更多 >
编程相关推荐