python - 从系列和字符串创建数据框

标签 python string pandas

假设我有一个包含字符串、系列和整数的列的数据框,我想将它们组合成一个新的数据框,其中字符串和整数与系列中的每个条目相结合。我该怎么办?

给出这个例子:

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/

相关文章:

python - 如何更新 Python 包?

python - 接收器丢失通过python中的TCP套接字发送的文件丢失的最后相同字节

python - 在训练期间将非张量参数传递给 Keras 模型/使用张量进行索引

python - 使用 `np.diff` 但假设输入以额外的零开头

java - 通过迭代将字符串数组添加到二维字符串数组

python - 保持卡住集中元素的顺序

c# - 如何在 C# 中搜索多个位置的直接子字符串

java - 使用运算符 "length"无法在类 "java.lang.String"的对象中找到 "."的值

python - Pandas 计算满足条件时列之间的时间差

python - 包含 python 对象(例如列表)的 Deepcopy pandas DataFrame