如何在pandas中将一列分成三列

2023-12-05

我有一个数据框,如下所示

ID  Name     Address
1   Kohli    Country: India; State: Delhi; Sector: SE25
2   Sachin   Country: India; State: Mumbai; Sector: SE39
3   Ponting  Country: Australia; State: Tasmania 
4   Ponting  State: Tasmania; Sector: SE27

从上面我想准备下面的数据框

ID  Name     Country   State     Sector
1   Kohli    India     Delhi     SE25
2   Sachin   India     Mumbai    SE39
3   Ponting  Australia Tasmania  None
4   Ponting  None      Tasmania  SE27

我尝试了下面的代码

df[['Country', 'State', 'Sector']] = pd.DataFrame(df['ADDRESS'].str.split(';',2).tolist(),
                                   columns = ['Country', 'State', 'Sector'])

但从上面看来,我必须通过对列进行切片来清理数据。我想知道有没有比这更简单的方法。


使用列表理解和字典理解来获取字典列表并传递给DataFrame构造函数:

L = [{k:v for y in x.split('; ')  for k, v in dict([y.split(': ')]).items()} 
          for x in df.pop('Address')]

df = df.join(pd.DataFrame(L, index=df.index))
print (df)
   ID     Name    Country     State Sector
0   1    Kohli      India     Delhi   SE25
1   2   Sachin      India    Mumbai   SE39
2   3  Ponting  Australia  Tasmania    NaN

Or use split重塑stack:

df1 = (df.pop('Address')
         .str.split('; ', expand=True)
         .stack()
         .reset_index(level=1, drop=True)
         .str.split(': ', expand=True)
         .set_index(0, append=True)[1]
         .unstack()
         )
print (df1)
0    Country Sector     State
0      India   SE25     Delhi
1      India   SE39    Mumbai
2  Australia    NaN  Tasmania

df = df.join(df1)
print (df)
   ID     Name    Country Sector     State
0   1    Kohli      India   SE25     Delhi
1   2   Sachin      India   SE39    Mumbai
2   3  Ponting  Australia    NaN  Tasmania
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在pandas中将一列分成三列 的相关文章

  • pandas 数据框列表的列表列表

    我有一个列表的列表 最外层列表的长度为 20 单独的类别 中间列表的长度可变 时间戳列表 内部列表的长度为 5 分割每个时间戳 例如 sTimestamps 0 5 Tue Feb 7 10 06 30 2017 Tue Feb 7 10
  • Pandas:多索引列标题

    我有时间序列数据框df看起来像这样 time A B C D E 2011 01 04 15 55 00 0 003452 0 005303 0 016632 0 009611 0 000726 2011 01 04 15 56 00 0
  • python,在数据框中存储字典

    我构建了一个 pandas 数据框 它在每个单元格中存储一个简单的字典 例如 Sales 0 Revenue 0 我可以通过以下方式从数据帧中检索特定值 df columnA index100 Revenue 但现在我想绘制一个图表 其中包
  • 在 Pandas 数据框中显示对图

    我试图通过从 pandas 数据框中的 scatter matrix 创建来显示一对图 这就是创建配对图的方式 Create dataframe from data in X train Label the columns using th
  • 使用 pandas 删除停用词

    我想从数据框的列中删除停用词 列内有需要拆分的文本 例如我的数据框如下所示 ID Text 1 eat launch with me 2 go outside have fun 我想应用停用词text column所以应该分开 我试过这个
  • Pandas groupby 汇总

    如果我有一个这样的数据框 import pandas as pd df pd DataFrame A 1 1 2 B a b c metric 4 5 2 df df groupby A B sum 得到的 df 为 metric A B
  • 使用自定义颜色渐变填充两条线之间的区域

    我正在做一项几乎已经完成的作业 但我想对其添加一些小改动 尝试使用基于温度的颜色图而不是简单的颜色来填充两条线之间的区域 绘制线条的方式本质上使它们成为独立的实体 所以我知道我可能需要两个彼此相遇或重叠的颜色图来完成此任务 但我不太确定如何
  • 如何在sklearn决策树中显示特征名称?

    我目前有一个决策树 将功能名称显示为X index i e X 0 X 1 X 2 etc from sklearn import tree from sklearn tree import DecisionTreeClassifier d
  • Python Pandas:沿一列比较两个数据帧,并返回另一个数据帧中两个数据帧的行内容

    我正在处理两个 csv 文件并作为数据框 df1 和 df2 导入 df1 有 50000 行 df2 有 150000 行 我想将 df2 的 时间 与 df1 求时间差并返回所有列的值 对应相似的行 保存在df3中 时间同步 例如 35
  • pandas 从 csv 文件读取 MultiIndex 数据

    我有一个 MultiIndex csv 文件 我想读入 数据保存在csv文件中 如下 import pandas as pd import numpy as np dfcsv pd read csv FilePath MultiIndex
  • 当时间为 00:00 时,Pandas 读取 excel 返回类型对象

    在更新版本的 Pandas 中 我使用的是 1 2 3 当从 Excel 文件读取时间时 时间为 00 00 00 时会出现问题 下面的脚本 其中 filepath 是我的 Excel 文件的路径 其中包含一个标题名为 Time 的列 im
  • 在 x 轴上操作日期 Pandas Matplotlib

    我有一组非常简单的数据 如下所示 我正在寻找一种方法来绘制此堆积条形图并格式化 x 轴 日期 使其从 1996 年 31 月 12 日开始 到 2016 年 31 月 12 日结束 增量为 365 天 我编写的代码绘制了每个日期 因此 x
  • Python:numpy/pandas 根据条件更改值

    我想知道是否有更快 更 Pythonic 的方法来执行以下操作 例如使用一些内置方法 给定一个 pandas DataFrame 或 numpy 浮点数组 如果该值等于或小于 0 5 我需要计算倒数并乘以 1 并用新计算的值替换旧值 转变
  • 替换 pandas 数据框中的点

    我有一个如图所示的数据框 数字实际上是对象 正在做df treasury rate pd to numeric df treasury rate 可预见的炸弹 然而 做df replace np nan 似乎没有摆脱这个点 所以我很困惑 有
  • 对于多列,将当前行和上一行的差异附加到新列

    对于 df 中的每一列 我想从前一行 row n 1 row n 中减去当前行 但我遇到了困难 我的代码如下 usr bin python3 from pandas datareader import data import pandas
  • 为 pandas 数据透视表中的每个值列定义 aggfunc

    试图生成具有多个 值 列的数据透视表 我知道我可以使用 aggfunc 按照我想要的方式聚合值 但是如果我不想对两列求和或求平均值 而是想要一列的总和 同时求另一列的平均值 该怎么办 那么使用 pandas 可以做到这一点吗 df pd D
  • Pandas Dataframe 中 bool 值的条件前向填充

    问题 如何转发 fill boolTruepandas 数据框中的值 如果是当天的第一个条目 True 到一天结束时 请参阅以下示例和所需的输出 Data import pandas as pd import numpy as np df
  • 在 Pandas DataFrame Python 中添加新列[重复]

    这个问题在这里已经有答案了 例如 我在 Pandas 中有数据框 Col1 Col2 A 1 B 2 C 3 现在 如果我想再添加一个名为 Col3 的列 并且该值基于 Col2 式中 如果Col2 gt 1 则Col3为0 否则为1 所以
  • Pandas:merge_asof() 对多行求和/不重复

    我正在处理两个数据集 每个数据集具有不同的关联日期 我想合并它们 但因为日期不完全匹配 我相信merge asof 是最好的方法 然而 有两件事发生merge asof 不理想的 数字重复 数字丢失 以下代码是一个示例 df a pd Da
  • 对年龄列进行分组/分类

    我有一个数据框说df有一个柱子 Ages gt gt gt df Age 0 22 1 38 2 26 3 35 4 35 5 1 6 54 我想对这个年龄段进行分组并创建一个像这样的新专栏 If age gt 0 age lt 2 the

随机推荐

  • Symfony2 选择字段验证不起作用

    我在 Symfony 2 7 10 中有一个表单 其定义如下
  • 跨域 POST 请求的 CSRF 验证在生产中失败

    HTTP X CSRFTOKEN 标头与 csrftoken cookie 内的内容不匹配 我怎样才能检查cookie Set Cookie 不会显示在跨域请求的响应标头中 我已经按照以下位置中的说明进行操作 使用 Django 进行 CS
  • 在一台计算机上打开工作簿错误代码 32809,但在另一台计算机上打不开

    我有一个 Excel 2013 宏工作簿 本工作簿在过去 6 个月中一直运行良好 今年的第一天 我遇到了下面的问题 代码如下 这行代码所做的就是在打开工作簿时将 activex 复选框控件设置为 true Sheets WSCHARTS c
  • 将字符串分成两部分,长度几乎相同

    我有字符串 这是一个示例字符串 我需要将其拆分为 2 个字符串 而不破坏单词 并且这两个字符串将具有最接近的长度 因此结果将是 This is a sample string 另一个例子 Gorge is nice gt Gorge is
  • Rails /lib 模块和

    我正在编写一个自定义包装器open flash chart插入 它被放置在 lib并将其作为模块加载ApplicationController 但是 我有类层次结构的问题或其他问题 从我可以访问的任何控制器open flash chart功
  • 如何使用 VBA 验证 SAP GUI 中的活动窗口

    我目前正在尝试使用 VBA 修复 SAP 过程中的一些问题 现在我有一段代码可以正确处理有时出现的错误弹出窗口 If session findById wnd 2 usr txtMESSTXT1 Text Material j atuali
  • 有什么充分的理由使用 FormCollection 而不是 ViewModel 吗?

    我继承了用 ASP Net MVC 4 编写的代码库 每个 post 方法都需要一个FormCollection 除了必须通过带引号的字符串访问值的烦恼之外 它还会导致一些缺点 例如无法使用诸如ModelState IsValid or A
  • 如何在c中确定linux中的目录或文件

    我只想打印文件名而不打印目录名称 所以我实现了这个功能 void list file char directory DIR d struct dirent dir d opendir directory if d while dir rea
  • clientHeight/clientWidth 在不同浏览器上返回不同的值

    特性document body clientHeight and document body clientWidth在 IE7 IE8 和 Firefox 上返回不同的值 IE 8 document body clientHeight 70
  • Elasticsearch 结合多个存储桶和聚合

    假设我们正在查看相当简单的数据 索引中的每个文档都具有以下结构 Time 2018 01 01T19 35 00 0000000Z Country Germany Addr security web com FailureCount 5 S
  • 在 R 中生成一个具有 m 列和 n 行的随机矩阵,其中行总和为 1

    我想生成一个 nxm 矩阵 假设它是 100x3 我希望每一行的总和为 1 因此两个 0 和一个 1 sample c 0 0 1 3 会给我 1 行 但是有没有一种非常快速的方法可以在没有 rbind 的情况下生成整个矩阵 谢谢你 没有循
  • 如果值不存在,则将数组对象推入另一个数组对象

    如果值不存在 需要将数组对象 arr1 的值推送到另一个数组对象 arr2 中 现有值不会推入另一个数组 var arr1 name fred name bill name ted name james var arr2 name spil
  • Android,当我在设备上安装应用程序时图标重复

    我尝试在我的设备上安装我开发的应用程序 Htcdesire 我发现该应用程序的图标是重复的 我需要改变什么才不会迟到发生这种情况 我怎样才能删除其中一个图标 感谢您的帮助 我今天遇到这个问题 我正在使用 Gradle 我发现有一个文件夹 b
  • Android,在 onClickListener 中使用 Toast

    我试图让 toast 在 onClickListener 内给定某些条件时显示一些文本 该应用程序无法在模拟器中运行 并且出现以下错误 void 无法转换为 Toast 我四处搜索 在这个论坛上找到了几个类似的问题和解决方案 但没有一个完全
  • Python 的 Requests 库中的 Session 对象线程安全吗?

    Python 的流行Requests该库在其主页上据说是线程安全的 但没有给出更多细节 如果我打电话requests session 然后我可以安全地将这个对象传递给多个线程 如下所示 session requests session fo
  • Java中模块的动态加载

    在 Java 中 我可以动态地将内容添加到类路径并加载类 动态 意味着无需重新启动我的应用程序 是否有一个已知的框架 库可以处理模块的动态加载 卸载而无需重新启动 通常的设置 尤其是 Web 应用程序 是负载均衡器 多个应用程序实例以及逐步
  • 填充控制台中的最后一行

    我想填充 更新控制台的整个底线 例子 static void Main string args Console BufferWidth Console WindowWidth Console BufferHeight Console Win
  • 恒定 FPS Android OpenGLES

    你好安卓开发者 我正在 Eclipse 中使用 OpenGLES 1 0 为 Android 开发一个简单的游戏 我使用 Samsung Galaxy S2 Android 2 3 作为开发设备 我有一个关于双核和使帧速率恒定的问题 因此
  • 在javascript中重置文本区域高度

    我有一个文本区域 自动调整大小 我想清除其所有内容 包括其高度 到目前为止我已经尝试过 document getElementById textarea value And document getElementById textarea
  • 如何在pandas中将一列分成三列

    我有一个数据框 如下所示 ID Name Address 1 Kohli Country India State Delhi Sector SE25 2 Sachin Country India State Mumbai Sector SE