将不同长度的逗号分隔数据行折叠成单列的首选 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 将三个不同的列连接成逗号分隔且没有重复值
在 ORACLE 中,有没有办法使用两个表将多行行连接成一个行,其中最终值用逗号分隔?