在python 3和pandas中,我具有数据框:
lista_projetos.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 59 entries, 0 to 58
Data columns (total 14 columns):
n_projeto 59 non-null object
autor 59 non-null object
ementa 59 non-null object
resumo 59 non-null object
votacao_nominal 59 non-null object
votacao_nominal_alternativa_emenda 59 non-null object
link_votacao 0 non-null float64
observacao 0 non-null float64
link_emenda 0 non-null float64
indicado_por 59 non-null object
entidade_que_avalia 59 non-null object
favoravel_desfavoravel_indiferente 59 non-null object
explicacao 59 non-null object
link_projeto 59 non-null object
dtypes: float64(3), object(11)
memory usage: 6.5+ KB
“ link_projeto”列中的网址始终采用以下格式:
“ http://www.camara.gov.br/proposicoesWeb/fichadetramitacao?idProposicao=2171854”
“ http://www.camara.gov.br/proposicoesWeb/fichadetramitacao?idProposicao=2147513”
“ http://www.camara.gov.br/proposicoesWeb/fichadetramitacao?idProposicao=2168253”
我想从“ link_projeto”列中创建一个新列。因此:请务必在“ =“符号
赞:
new_column
2171854
2147513
2168253
请问,有没有办法从另一部分中创建一个新列?
答案 0 :(得分:1)
首先,您将如何对单个值执行此操作?
>>> link = "http://www.camara.gov.br/proposicoesWeb/fichadetramitacao?idProposicao=2171854"
>>> link.split("=", 1)[1]
'2171854'
但是split
是str
对象上的方法;如何将其应用于充满字符串的列?简单:出于此目的,列(系列和索引)具有str
attribute:
df.link_projecto.str.split("=", 1)
但是split
不仅返回字符串,还返回字符串列表。我们如何获得最后一个?
如Splitting and Replacing Strings中所述,您只需再次访问str
并为其编制索引:
df.link_projecto.str.split("=", 1).str[1]
所以:
df["new_column"] = df.link_projecto.str.split("=", 1).str[1]