使用:#create dataframe

df = pd.read_csv(filename, sep=';')

#split all values

df = df.applymap(lambda x: x.split('|'))

print (df)

fruit_type fruit_color fruit_weight

0 [Apple, Banana] [Red, Yellow] [2, 1]

1 [Orange] [Orange] [4]

2 [Pineapple, Grape, Watermelon] [Brown, Purple, Green] [12, 1, 15]

#get position of max weight

a = pd.DataFrame(df['fruit_weight'].values.tolist()).astype(float).idxmax(1).tolist()

print (a)

[0, 0, 2]

#convert df to dictionary

b = df.to_dict('list')

print (b)

{'fruit_weight': [['2', '1'], ['4'], ['12', '1', '15']],

'fruit_color': [['Red', 'Yellow'], ['Orange'], ['Brown', 'Purple', 'Green']],

'fruit_type': [['Apple', 'Banana'], ['Orange'], ['Pineapple', 'Grape', 'Watermelon']]}

^{pr2}$

计时:df = pd.concat([df]*1000).reset_index(drop=True)

def col(df):

df = df.applymap(lambda x: x.split('|'))

idx = df.index.repeat(df.fruit_weight.str.len())

df = df.apply(lambda x: pd.Series(np.concatenate(x.tolist())), 0)

return df.assign(idx=idx).groupby('idx', group_keys=False).apply(lambda x: x.sort_values('fruit_weight', ascending=False).head(1))

def jez(df):

df = df.applymap(lambda x: x.split('|'))

a = pd.DataFrame(df['fruit_weight'].values.tolist()).astype(float).idxmax(1).tolist()

b = df.to_dict('list')

a = {k: [k1[v1] for k1,v1 in zip(v, a)] for k, v in b.items()}

return pd.DataFrame(a)

print (col(df))

print (jez(df))

In [229]: %timeit (col(df))

1 loop, best of 3: 1.58 s per loop

In [230]: %timeit (jez(df))

100 loops, best of 3: 19.3 ms per loop

python按行拆分表格_Python将单元格中的多个值拆分为多行相关推荐

  1. 【pandas】将单元格中的多个数据拆分为多行数据(explode),以csv文件为源文件进行处理

    [pandas]将单元格中的多个数据拆分为多行数据(explode) 1.原始数据(test.csv) 2.需求 将"别名"."科目"这两列中带有多个数据的单元 ...

  2. FineUI大版本升级,外置ExtJS库、去AXD化、表格合计行、表格可编辑单元格的增删改、顶......

    2019独角兽企业重金招聘Python工程师标准>>> FineUI v3.3.0 更新的内容非常多,所以一下子从 v3.2.6 连跳 3 个小版本,直接来到了 v3.3.0.详细的 ...

  3. FineUI大版本升级,外置ExtJS库、去AXD化、表格合计行、表格可编辑单元格的增删改、顶部菜单框架

    FineUI v3.3.0 更新的内容非常多,所以一下子从 v3.2.6 连跳 3 个小版本,直接来到了 v3.3.0.详细的更新记录请参考这里:http://fineui.com/version 主 ...

  4. FineUI大版本升级,外置ExtJS库、去AXD化、表格合计行、表格可编辑单元格的增删改、顶部菜单框架...

    FineUI v3.3.0 更新的内容非常多,所以一下子从 v3.2.6 连跳 3 个小版本,直接来到了 v3.3.0.详细的更新记录请参考这里:http://fineui.com/version 主 ...

  5. excel高效办公——Excel如何将同一单元格中的日期和时间拆分(分列法)

    问题:一个单元格存放时间和日期,如何将时间和日期拆分放在两个单元格? 数据为:2020/05/05 08:18,日期与时间之间有空格 1.在数据--分列 2.选择分割符号 3.选择使用空格进行分列 4 ...

  6. python自动填写excel_Python:根据前面单元格中的公式自动填充Excel中的单元格

    使用Python和win32com: 我在Excel文件中有一个公式,在单元格A5:A54.我试着用同样公式的值填充A55:A61单元格.我在网上搜索发现: http://pythonexcels.c ...

  7. word表格处理:单元格中文字显示设置技巧

    在日常的工作学习中,Word制表虽然没有Excel制表那么灵活,但也是不可避免的.比如,在一些需要数据论证的报告中就会经常使用到.很多时候表格的制作其实比文字排版还要麻烦. 今天小编就给大家分享一个制 ...

  8. Excel2013 利用phonetic函数将多行数据合并到同一单元格中

    场景:有一列邮箱数据,现在需要将他们合并到同一个单元格内,且邮箱之间要用英文的逗号隔开 以前五条邮箱为例,利用phonetic函数实现这种合并: 合并结果: 其中,E列是添加的辅助列.

  9. 不再为DataGrid生成的表格的单无格中的内容过长、自动折行、表格撑开等问题而烦恼----一个很久以前的做品...

    是我以前用在一个项目中的,如有些地方不适用于你,你可以修改部分代码. 功能:    按列分色:                 过长内容自动隐藏:                 鼠标Over自动展开 ...

最新文章

  1. 收藏 | 神经网络的 5 种常见求导,附详细的公式过程
  2. 从ASP.NET得到Microsoft Word文档
  3. android碎片功能实现,Android 列表碎片
  4. 【v2.x OGE-example 第二章(第二节) 修改器的使用】
  5. 图像矫正与车牌识别资料整理
  6. 源码实战 | 本地可跑,上线就崩?慌了!
  7. python编码-python中处理中文编码问题
  8. 笔记-项目风险管理-风险应对
  9. 学习opencv3中文版_给视觉组新生的一点学习建议
  10. C# - 多线程(基础)
  11. linux bash 逻辑,Bash 中的逻辑和() | Linux 中国
  12. 一天没出个版本,让别人试试哪里有问题
  13. multisim安装
  14. C盘空间不够?教你简单扩容C盘空间
  15. WSAData小说明(转)
  16. idea新建sourceFolder
  17. 求三角形面积-gyy
  18. 结巴分词 java_Java版结巴分词自定义词库
  19. JavaScript级联链表
  20. EMV规范(七)——持卡人验证(CVM)一

热门文章

  1. UltraScale时钟资源和时钟管理模块
  2. 上坡和下坡(文章很短,道理很深)
  3. Eclipse 删除找回(SVN)
  4. 苹果ios超级签名源码包java版带分发页面支持安卓合并部署教程
  5. JavaScript-截取字符串
  6. HTTP请求一张图片,转为流返回
  7. linux复制并重命名文件
  8. Linux中top命令参数说明
  9. arcgis 投影坐标系的区分
  10. 啤酒灌装机的控制器西门子S7-200SMART