假设我有一个包含字符串、系列和整数的列的数据框,我想将它们组合成一个新的数据框,其中字符串和整数与系列中的每个条目相结合。我该怎么办?
给出这个例子:
data = {'fruits': ['banana', 'apple', 'pear'],
'source' : (['brazil', 'algeria', 'nigera'], ['brazil', 'morocco', 'iran', 'france'], ['china', 'india', 'mexico']),
'prices' : [2, 3, 7]}
df = pd.DataFrame(data, columns = ['fruits', 'source', 'prices'])
我想要一个 3x10 的数据框;
['banana', 'banana', 'banana', 'apple', 'apple', 'apple', 'apple', 'pear', 'pear', 'pear'],
['brazil', 'algeria', 'nigera', 'brazil', 'morocco', 'iran', 'france', 'china', 'india', 'mexico'],
['2', '2', '2', '3', '3', '3', '3', '7', '7', '7'],
我想它不应该太复杂,但我找不到一个简洁的解决方案。
最佳答案
使用explode()功能:
In [30]: explode(df, lst_cols='source')
Out[30]:
fruits source prices
0 banana brazil 2
1 banana algeria 2
2 banana nigera 2
3 apple brazil 3
4 apple morocco 3
5 apple iran 3
6 apple france 3
7 pear china 7
8 pear india 7
9 pear mexico 7
关于python - 从系列和字符串创建数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47798578/