首页 > 解决方案 > 使用来自其他列的行的信息创建新列

问题描述

我已经准备了大量的数据框,其中包含来自 PDF 文件的信息。请在此处找到示例 PDF:https ://www.estv.admin.ch/dam/estv/de/dokumente/allgemein/Dokumentation/Zahlen_fakten/Steuerstatistiken/steuerbelastung_gemeinden/2010/Steuerbelastung%20in%20den%20Gemeinden%202010.pdf .download.pdf/2010_steuerbelastung_gemeinden_d.pdf

我的 Pandas 数据框将包含第 6 - 63 页的瑞士市政当局的税率(略去只有文本的页面)。

每个自治市都属于一个“州”。例如,在 p。6 所有城市都属于“Kanton Zürich”,如第一行所示。在页。7、大部分自治市属于“坎顿伯尔尼”。

我想使用 Canton 信息创建一个附加列(并删除 Canton 行)。

不幸的是,我不知道如何将 Canton 信息分配给各个城市。

标签: pandasdataframe

解决方案


我找到了一个简单的解决方案。如果您有类似的问题,请参阅下文。

df['Kanton'] = df['Gemeinde'].str.contains('^Kanton|^Canton')
df.loc[df['Kanton'] == True, 'Kanton'] = df['Gemeinde']
df.loc[df['Kanton'] == False, 'Kanton'] = np.nan
df['Kanton'].fillna(method='ffill', inplace = True)
df = df[~df['Gemeinde'].str.contains('^Kanton|^Canton')]

推荐阅读