将 Pandas 中的一列拆分为两次 - python

我有一列“Nome_propriedade”,其中包含完整的地址,例如机构名称,街道,社区,城市和州

它始终以城市和州的名称结尾。使用这种模式:

Nome_propriedade
"Rod. BR 386, bairro Olarias/Conventos, Lajeado/RS"
"Fazenda da Várzea - zona rural, Serro/MG"
"Cidade do Rock - Jacarepaguá, Rio de Janeiro/RJ"
"Área de extração de carnaúba - Povoado Areal, zona rural, Santa Cruz do Piauí/PI"
"Pastelaria - Av. Vicente de Carvalho, 995, Loja Q, Vila da Penha, Rio de Janeiro/RJ"

我想创建两个新列,“city”和“state”,并用在“Nome_propriedade”列中找到的最后一个值填充它们。我也想禁止那些远离Nome_propiedade的人。

                           Nome_propriedade                 City State
      Rod. BR 386, bairro Olarias/Conventos              Lajeado    RS
             Fazenda da Várzea - zona rural                Serro    MG
            Cidade do Rock - Jacarepaguá...       Rio de Janeiro    RJ
Área de extração de carnaúba - Povoado A...  Santa Cruz do Piauí    PI
Pastelaria - Av. Vicente de Carvalho, 99...       Rio de Janeiro    RJ

请任何人知道我如何创建这两列?

我无法进行一般拆分,因为我只想分隔城市和州信息。其他信息可能保持不变。

参考方案

你有什么想法:

import pandas as pd
propiedades = ["Rod. BR 386, bairro Olarias/Conventos, Lajeado/RS",
               "Fazenda da Várzea - zona rural, Serro/MG",
               "Cidade do Rock - Jacarepaguá, Rio de Janeiro/RJ",
               "Área de extração de carnaúba - Povoado Areal, zona rural, Santa Cruz do Piauí/PI",
               "Pastelaria - Av. Vicente de Carvalho, 995, Loja Q, Vila da Penha, Rio de Janeiro/RJ"]
df = pd.DataFrame({"Nome_propriedade":propiedades})

df[["City", "State"]] = df["Nome_propriedade"].apply(lambda x :x.split(",")[-1]).str.split("/",
                                                                                           expand=True)

更新
如果您随后要从Nome_propriedade中删除这些信息,则可以添加此行

df["Nome_propriedade"] = df["Nome_propriedade"].apply(lambda x :",".join(x.split(",")[:-1]))

Python Pandas:按分组分组,平均? - python

我有一个像这样的数据框:cluster org time 1 a 8 1 a 6 2 h 34 1 c 23 2 d 74 3 w 6 我想计算每个集群每个组织的平均时间。预期结果:cluster mean(time) 1 15 ((8+6)/2+23)/2 2 54 (74+34)/2 3 6 我不知道如何在熊猫中做到这一点,有人可以帮忙吗? 参考方案 如…

重命名默认ID python - python

我想连接两个dataFrames,但是两个数据具有不同的ID,所以结果是错误的这是我的代码data=pd.DataFrame(df.columns) data1=data.drop(axis=1,index=[0,1,2,3]).transpose() data1 这是dataframe1另一个数据框:y=sma_algo(df.loc['H+L&…

Python Pandas:在多列上建立布尔索引 - python

尽管至少有关于如何在Python的pandas库中为DataFrame编制索引的two good教程,但我仍然无法在一个以上的列上找到一种优雅的SELECT编码方式。>>> d = pd.DataFrame({'x':[1, 2, 3, 4, 5], 'y':[4, 5, 6, 7, 8]}) >…

pandas DataFrame:根据另一列中的布尔值计算总和 - python

我对Python相当陌生,我尝试在pandas中模拟以下逻辑我目前正在循环抛出行,并希望对前几行的AMOUNT列中的值求和,但只求和最后一次看到的“ TRUE”值。实际数据似乎效率低下(我的数据框大约有500万行)?想知道用Python处理这种逻辑的有效方法是什么?逻辑:逻辑是,如果FLAG为TRUE,我想对前几行的AMOUNT列中的值求和,但只求和最后一次…

替换pandas数据框中的值会使内核崩溃 - python

我有一个包含10列整数的数据框:site1 site2 site3 ... site10 55 56 198 ... 340 10 101 200 ... 900 ... 1 1090 500 ... 300 我有字典来替换其中一些值:dict = { "55" : "198" .... } 当我做:df.replac…