繁体   English   中英

为什么我的 concat 方法会在我的 pandas df 中添加数百万行?

[英]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_TITLECONTACT_1_NAMECONTACT_2_TITLECONTACT_2_NAME一直到 15。

联系人头衔和姓名的顺序(如果存在,有时不存在)是随机的。 例如, ARCHITECT标题可能在第一个标题列,第二个,第三个等......标题还有其他变体,例如ARCHITECT AS OWNER

我想创建一个新的数据df_arch ,其中包含前一帧中存在标题ARCHITECT变体的每一行。 除了与它们相关的额外TITLENAME和联系信息(它们也是它们自己的列)

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM