假设我有一个数据框
我想重新调整它的形状并连接字符串
我可以使用熔化 reshape 它,但我丢失了描述。我尝试过转型但没有运气 有什么想法吗?
代码:
import pandas as pd
x = [['a', 'Electronics', 'TV', '42" plasma'], ['a', 'Electronics', 'TV', '36" LCD'], ['a', 'Electronics', 'hifi', 'cd player'], ['a', 'Electronics', 'hifi', 'record player'], ['b', 'Sports', 'Soccer', 'mens trainers'], ['b', 'Sports', 'Soccer', 'womens trainers'], ['b', 'Sports', 'golf', '9 iron']]
df = pd.DataFrame(x, columns =['id', 'category','sub_category','description'])
y = pd.melt(df, id_vars=['id'],value_vars=['category','sub category'])['description'].transform(lambda x : ' '.join(x))
最佳答案
第一个问题melt
,需要将description
列添加到id_vars
,然后将join
与聚合>groupby
,所以全部是:
y = (pd.melt(df,
id_vars=['id','description'],
value_vars=['category','sub_category'],
value_name='Category')
.groupby(['id','Category'])['description']
.agg(' '.join)
.reset_index())
print (y)
id Category description
0 a Electronics 42" plasma 36" LCD cd player record player
1 a TV 42" plasma 36" LCD
2 a hifi cd player record player
3 b Soccer mens trainers womens trainers
4 b Sports mens trainers womens trainers 9 iron
5 b golf 9 iron
关于python - 如何融化 pandas 中的数据框并连接字符串以获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67105921/