[英]Why is my concat method adding millions of rows to my pandas df?
问题:我下面的方法将几百万不需要的行添加到我的df
。
len
方法前: 707,864
方法后: 6,370,776
数据来源: https ://data.cityofchicago.org/Buildings/Building-Permits/ydr8-5enu
数据有多列以这种格式的联系信息: CONTACT_1_TITLE
、 CONTACT_1_NAME
、 CONTACT_2_TITLE
、 CONTACT_2_NAME
一直到 15。
联系人头衔和姓名的顺序(如果存在,有时不存在)是随机的。 例如, ARCHITECT
标题可能在第一个标题列,第二个,第三个等......标题还有其他变体,例如ARCHITECT AS OWNER
我想创建一个新的数据df_arch
,其中包含前一帧中存在标题ARCHITECT
变体的每一行。 除了与它们相关的额外TITLE
、 NAME
和联系信息(它们也是它们自己的列)
在df_arch
中,我想要一个单独的列TITLE
,其中包含建筑师的头衔。 我想要另一列NAME
,其中包含建筑师的姓名,该名称始终位于标题右侧的单元格中。
为了捕捉这一切,我有以下几点:
title = pd.concat([df[col] for col in df.filter(regex='CONTACT_\d_TYPE')], axis=0)
name = pd.concat([df[col] for col in df.filter(regex='CONTACT_\d_NAME')], axis=0)
ID = pd.concat([df[col] for col in df. filter(like='ID')], axis=0)
permit_num = pd.concat(df[col] for col in df.filter(like='PERMIT#'))
permit_type = pd.concat(df[col] for col in df.filter(like='PERMIT_TYPE'))
review_type = pd.concat(df[col] for col in df.filter(like='REVIEW_TYPE'))
app_start_date = pd.concat(df[col] for col in df.filter(like='APPLICATION_START_DATE'))
issue_date = pd.concat(df[col] for col in df.filter(like='ISSUE_DATE'))
processing_time = pd.concat(df[col] for col in df.filter(like='PROCESSING_TIME'))
street_num = pd.concat(df[col] for col in df.filter(like='STREET_NUMBER'))
street_dir = pd.concat(df[col] for col in df.filter(like='STREET DIRECTION'))
street_name = pd.concat(df[col] for col in df.filter(like='STREET_NAME'))
street_suffix = pd.concat(df[col] for col in df.filter(like='SUFFIX'))
work_desc = pd.concat(df[col] for col in df.filter(like='WORK_DESCRIPTION'))
building_fee_paid = pd.concat(df[col] for col in df.filter(like='BUILDING_FEE_PAID'))
zoning_fee_paid = pd.concat(df[col] for col in df.filter(like='ZONING_FEE_PAID'))
other_fee_paid = pd.concat(df[col] for col in df.filter(like='OTHER_FEE_PAID'))
subtotal_paid = pd.concat(df[col] for col in df.filter(like='SUBTOTAL_PAID'))
building_fee_unpaid = pd.concat(df[col] for col in df.filter(like='BUILDING_FEE_UNPAID'))
zoning_fee_unpaid = pd.concat(df[col] for col in df.filter(like='ZONING_FEE_UNPAID'))
other_fee_unpaid = pd.concat(df[col] for col in df.filter(like='OTHER_FEE_UNPAID'))
subtotal_unpaid = pd.concat(df[col] for col in df.filter(like='SUBTOTAL_UNPAID'))
building_fee_waived = pd.concat(df[col] for col in df.filter(like='BUILDING_FEE_WAIVED'))
zoning_fee_waived = pd.concat(df[col] for col in df.filter(like='ZONING_FEE_WAIVED'))
other_fee_waived = pd.concat(df[col] for col in df.filter(like='OTHER_FEE_WAIVED'))
subtotal_waived = pd.concat(df[col] for col in df.filter(like='SUBTOTAL_WAIVED'))
total_fee = pd.concat(df[col] for col in df.filter(like='TOTAL_FEE'))
reported_cost = pd.concat(df[col] for col in df.filter(like='REPORTED_COST'))
ward = pd.concat(df[col] for col in df.filter(like='WARD'))
df = pd.concat([title,name, ID, permit_num, permit_type, review_type,\
app_start_date, issue_date, processing_time, street_num,\
street_dir, street_name, street_suffix, work_desc,\
building_fee_paid, zoning_fee_paid, other_fee_paid,\
subtotal_paid, building_fee_unpaid, zoning_fee_unpaid,\
other_fee_unpaid, subtotal_unpaid, building_fee_waived,\
zoning_fee_waived, other_fee_waived, total_fee, reported_cost,\
ward], axis=1)
df.columns = ['title', 'name', 'ID', 'permit_num', 'permit_type','review_type',\
'app_start_date', 'issue_date', 'processing_time','street_num',\
'street_dir','street_name','street_suffix','work_desc',\
'building_fee_paid','zoning_fee_paid','other_fee_paid',\
'subtotal_paid','building_fee_unpaid','zoning_fee_unpaid',\
'other_fee_unpaid','subtotal_unpaid','building_fee_waived',\
'zoning_fee_waived','other_fee_waived','total_fee','reported_cost',\
'ward']
这是添加数百万行的代码块,我不知道为什么。 我在下面包含了一些示例数据:
ID PERMIT# PERMIT_TYPE REVIEW_TYPE APPLICATION_START_DATE ISSUE_DATE PROCESSING_TIME STREET_NUMBER STREET DIRECTION STREET_NAME SUFFIX WORK_DESCRIPTION BUILDING_FEE_PAID ZONING_FEE_PAID OTHER_FEE_PAID SUBTOTAL_PAID BUILDING_FEE_UNPAID ZONING_FEE_UNPAID OTHER_FEE_UNPAID SUBTOTAL_UNPAID BUILDING_FEE_WAIVED ZONING_FEE_WAIVED OTHER_FEE_WAIVED SUBTOTAL_WAIVED TOTAL_FEE CONTACT_1_TYPE CONTACT_1_NAME CONTACT_1_CITY CONTACT_1_STATE CONTACT_1_ZIPCODE CONTACT_2_TYPE CONTACT_2_NAME CONTACT_2_CITY CONTACT_2_STATE CONTACT_2_ZIPCODE CONTACT_3_TYPE CONTACT_3_NAME CONTACT_3_CITY CONTACT_3_STATE CONTACT_3_ZIPCODE CONTACT_4_TYPE CONTACT_4_NAME CONTACT_4_CITY CONTACT_4_STATE CONTACT_4_ZIPCODE CONTACT_5_TYPE CONTACT_5_NAME CONTACT_5_CITY CONTACT_5_STATE CONTACT_5_ZIPCODE CONTACT_6_TYPE CONTACT_6_NAME CONTACT_6_CITY CONTACT_6_STATE CONTACT_6_ZIPCODE CONTACT_7_TYPE CONTACT_7_NAME CONTACT_7_CITY CONTACT_7_STATE CONTACT_7_ZIPCODE CONTACT_8_TYPE CONTACT_8_NAME CONTACT_8_CITY CONTACT_8_STATE CONTACT_8_ZIPCODE CONTACT_9_TYPE CONTACT_9_NAME CONTACT_9_CITY CONTACT_9_STATE CONTACT_9_ZIPCODE CONTACT_10_TYPE CONTACT_10_NAME CONTACT_10_CITY CONTACT_10_STATE CONTACT_10_ZIPCODE CONTACT_11_TYPE CONTACT_11_NAME CONTACT_11_CITY CONTACT_11_STATE CONTACT_11_ZIPCODE CONTACT_12_TYPE CONTACT_12_NAME CONTACT_12_CITY CONTACT_12_STATE CONTACT_12_ZIPCODE CONTACT_13_TYPE CONTACT_13_NAME CONTACT_13_CITY CONTACT_13_STATE CONTACT_13_ZIPCODE CONTACT_14_TYPE CONTACT_14_NAME CONTACT_14_CITY CONTACT_14_STATE CONTACT_14_ZIPCODE CONTACT_15_TYPE CONTACT_15_NAME CONTACT_15_CITY CONTACT_15_STATE CONTACT_15_ZIPCODE REPORTED_COST PIN1 PIN2 PIN3 PIN4 PIN5 PIN6 PIN7 PIN8 PIN9 PIN10 COMMUNITY_AREA CENSUS_TRACT WARD XCOORDINATE YCOORDINATE LATITUDE LONGITUDE LOCATION
0 1830273 100190752 PERMIT - SIGNS SIGN PERMIT 10/16/2007 03/05/2008 141.0 6349 S COTTAGE GROVE AVE INSTALL BUILDING SIGN 70.0 75.0 0.0 145.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 145.0 SIGN CONTRACTOR JAS. D. AHERN CO. CHICAGO X IL 60623 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 2000.0 20-23-100-005 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
1 2060019 100296510 PERMIT - ELECTRIC WIRING EASY PERMIT WEB 06/15/2009 06/15/2009 0.0 10000 N BESSIE COLEMAN DR LOW VOLTAGE 50.0 0.0 0.0 50.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 50.0 CONTRACTOR-ELECTRICAL ELITE ELECTRIC CO. INC. MELROSE PARK IL 60160 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 70000.0 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 76.0 NaN 41.0 NaN NaN NaN NaN NaN
2 1671981 100108067 PERMIT - ELECTRIC WIRING EASY PERMIT WEB 04/17/2006 04/17/2006 0.0 7535 N HERMITAGE AVE ADD CIRCUITS FOR COMPUTERS. 40.0 0.0 0.0 40.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 40.0 CONTRACTOR-ELECTRICAL PACE SYSTEMS, INC. NAPERVILLE IL 60563- NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 0.0 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
3 2832499 100696131 PERMIT - ELECTRIC WIRING EASY PERMIT WEB 03/20/2017 03/20/2017 0.0 150 N RIVERSIDE PLZ LOW VOLTAGE CABLING FOR 18TH & 25TH FLOOR BUILD OUTS. 150.0 0.0 0.0 150.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 150.0 CONTRACTOR-ELECTRICAL PAUL M CARUSO LOMBARD IL 60148- NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 39600.0 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 28.0 2801.0 42.0 NaN NaN NaN NaN NaN
4 3053734 100830913 PERMIT - ELECTRIC WIRING EASY PERMIT WEB 07/17/2019 07/17/2019 0.0 4001 N RAVENSWOOD AVE ATT IL01735G NR UPGRADE - 850: SWAP (3) EXIST LTE RRUS12 W/ (3) PROPOSED RRUS4478-B5 W/ 2ND FIBER IN P4. ONLY CONNECT 2 PORTS OF RADIO TO ANTENNA, OTHER 2 PORTS TO BE CAPPED OFF.ADD (1) 12 PAIR FIBER TRUNK TO EXISTING FC12 BOX ON SHELTER WALL.SELF RET - P45G NR UPGRADE - 850: ADD (3) 25A BREAKERS, (1) 20A BREAKER, (1) 6630, AND UPPER/LOWER SFPS. 300.0 0.0 0.0 300.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 300.0 CONTRACTOR-ELECTRICAL BRIAN K PETERSEN ELGIN IL 60124- NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 15000.0 14-18-420-031 NaN NaN NaN NaN NaN NaN NaN NaN NaN 6.0 60200.0 47.0 NaN NaN NaN NaN NaN
任何帮助将不胜感激!
您的问题在于您的标题、姓名和 ID 的连接。
for i,j in zip(cols,[title,name, ID, permit_num, permit_type, review_type,\
app_start_date, issue_date, processing_time, street_num,\
street_dir, street_name, street_suffix, work_desc,\
building_fee_paid, zoning_fee_paid, other_fee_paid,\
subtotal_paid, building_fee_unpaid, zoning_fee_unpaid,\
other_fee_unpaid, subtotal_unpaid, building_fee_waived,\
zoning_fee_waived, other_fee_waived, total_fee, reported_cost,\
ward]):
print(i,len(j))
输出:
title 6383331
name 6383331
ID 6383331
permit_num 709259
permit_type 709259
review_type 709259
app_start_date 709259
issue_date 709259
processing_time 709259
street_num 709259
street_dir 709259
street_name 709259
street_suffix 709259
work_desc 709259
building_fee_paid 709259
zoning_fee_paid 709259
other_fee_paid 709259
subtotal_paid 709259
building_fee_unpaid 709259
zoning_fee_unpaid 709259
other_fee_unpaid 709259
subtotal_unpaid 709259
building_fee_waived 709259
zoning_fee_waived 709259
other_fee_waived 709259
total_fee 709259
reported_cost 709259
ward 709259
也许也可以使用另一种方法来处理这些列,6383331/709259 = 9,也许是另一个线索
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.