在数据帧单元格中解包连接值的常用方法?

马克·米勒

是否有很好的现有方法可以在这两种形式之间进行转换?

+--------+-------------+
| FRUIT  | ATTRIBUTES  |
+--------+-------------+
| banana | long|yellow |
+--------+-------------+
| kiwi   | brown|oval  |
+--------+-------------+

+--------+-----------+
| FRUIT  | ATTRIBUTE |
+--------+-----------+
| banana | long      |
+--------+-----------+
| banana | yellow    |
+--------+-----------+
| kiwi   | brown     |
+--------+-----------+
| kiwi   | oval      |
+--------+-----------+

我目前正在为解包过程迭代行,我听说这不被鼓励。

import pandas as pd

packed = pd.DataFrame([['banana', 'long|yellow'], 
                       ['kiwi', 'brown|oval']], 
                      columns=['FRUIT', 'ATTRIBUTES'])

pack_delim = '|'

per_fruit_frames = []

for row in packed.itertuples(index=True, name='Pandas'):
    row_attribs = row.ATTRIBUTES
    row_attribs_split = row_attribs.split(pack_delim)
    row_attribs_series = pd.Series(row_attribs_split)
    ras_len = len(row_attribs_split)
    fruit_rep = [row[1]] * ras_len
    frs = pd.Series(fruit_rep)
    temp = pd.concat([frs, row_attribs_series], axis=1)
    per_fruit_frames.append(temp)
    
unpacked = pd.concat(per_fruit_frames)

unpacked.columns = packed.columns
阿努拉格·达巴斯

尝试:

packed=(packed.assign(ATTRIBUTES=packed['ATTRIBUTES'].str.split('|'))
              .explode('ATTRIBUTES',ignore_index=True))

或者

分两步:

packed['ATTRIBUTES']=packed['ATTRIBUTES'].str.split('|')
packed=packed.explode('ATTRIBUTES',ignore_index=True)

的输出packed

    FRUIT   ATTRIBUTES
0   banana  long
1   banana  yellow
2   kiwi    brown
3   kiwi    oval

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

颜色单元格取决于它们在数据帧每一行中的值

将一个数据帧中的单元格值与另一数据帧中的相应单元格值相连接

R - 根据另一个单元格值,按组连接数据帧中的单元格

如何使用Aspose单元格在数据透视表单元格中垂直居中放置值?

将数据帧单元格中的值向量转换为对应行的列值

根据单元格中的值数重塑R中的数据帧

R:如何根据单元格中的值将数据帧中的行拆分为多行?

在for循环中提取数据帧单元格值

在数据框中读取2个单元格值

如何将具有值的单元格在数据框中向左移动

将特定值放在数据库的特定表单元格中。(剃刀-html)

Aspose 单元格“Σ 值”显示在数据透视表的行中

将多个值分配给数据帧中的不同单元格

基于每个单元格中的列值复制数据帧行

从包含数据帧中元组列表的每个单元格中检索最大值

在熊猫数据帧的单个单元格中插入多个值

验证单元格值是否在数组中

查找存储在数据框单元格中的列表

根据字符在数据框中乘以单元格

在python-pandas的数据帧的特定列中查找重复单元格的快速方法?

根据将另一个单元格与另一个数据帧的单元格进行比较来更改一个数据帧中单元格的值-熊猫

用excel在一个单元格中列出N个其他单元格中的常用值

在数据框中解包数据的方法

如何只保留在数据帧上具有特定文本的“单元格”?

根据列值在数据框中添加空白单元格(excel:插入单元格并向右移动)

在数据框内拆分单元格

如何从excel中的单元格中随机连接值?

从表中,连接单元格 VBA 中的值

在数据框单元格中查找特定值,并打印具有该值的匹配列的行标题