将不同长度的逗号分隔数据行折叠成单列的首选 Pandas 解决方案 [重复]

Posted

技术标签:

【中文标题】将不同长度的逗号分隔数据行折叠成单列的首选 Pandas 解决方案 [重复]【英文标题】:Preferred Pandas solution to collapsing rows of comma-delimited data of varying length into single column [duplicate] 【发布时间】:2020-05-15 13:01:29 【问题描述】:

假设我有一个数据框df,格式为:

| a,b,c,d |
|  e,f,g  |
|   h     |

但是,使用逗号分隔符,希望将值折叠到单列数据框中,例如:

| a |
| b |
| c |
| d |
| e |
| f |
| g |
| h |

在 Python 中解决这个问题的最 Pythonic/Pandas 首选的解决方案是什么?

【问题讨论】:

df.assign(col=df['col'].str.split(',')).explode('col') 【参考方案1】:

你应该使用.explode():

df['col_1'] = df['col_1'].str.split(',')
df = df.explode('col_1')

【讨论】:

【参考方案2】:

如果是size=(3,4)的data-frame,下面这行可以解决

pd.DataFrame(df.values.reshape(-1,1))

【讨论】:

【参考方案3】:

我想出的解决方案涉及遍历数据框的行:

new_list = []

for indx, row in table.iterrows():
  new_list += row[0].split(',')

new_df = pd.DataFrame(new_list)

【讨论】:

以上是关于将不同长度的逗号分隔数据行折叠成单列的首选 Pandas 解决方案 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server 将三个不同的列连接成逗号分隔且没有重复值

当相同的 id 行数据进入一行数据时,逗号分隔

在 ORACLE 中,有没有办法使用两个表将多行行连接成一个行,其中最终值用逗号分隔?

使用逗号分隔符将单个 CSV 列批量转换为多个

sql server里如何将一组用逗号分隔的字符串分解并插入到另一张表中,比如:11873,27827, 也可能是好多

在 Python 中查找逗号分隔列表中的第 N 个项目