Python 基于每个单元格中的列值复制数据帧行

Python 基于每个单元格中的列值复制数据帧行,python,dataframe,Python,Dataframe,我有一个如下所示的数据框,我必须使用逗号作为分隔符来复制行。一旦看到下面的数据帧,就更容易理解了!: ID Fruit 10000 Apple, Orange, Pear 10001 Apple, Banana 我想在下面创建一个数据帧: ID Fruit 10000 Apple 10000 Orange 10000 Pear 10001 Apple 10001 Banana 如果df如下所示: >>> df = pd.D

我有一个如下所示的数据框,我必须使用逗号作为分隔符来复制行。一旦看到下面的数据帧,就更容易理解了!:

ID      Fruit
10000   Apple, Orange, Pear
10001   Apple, Banana
我想在下面创建一个数据帧:

ID      Fruit
10000   Apple 
10000   Orange
10000   Pear
10001   Apple 
10001   Banana

如果
df
如下所示:

>>> df = pd.DataFrame({'ID': [10000, 10001], 'Fruit': ['Apple, Orange, Pear', 'Apple, Banana']})
>>> print(df)
      ID                Fruit
0  10000  Apple, Orange, Pear
1  10001        Apple, Banana
您可以使用该方法创建列表的新列,该列由具有新行的词典组成。然后,您可以连接这些列表,以便从中生成新的数据帧。代码如下:

>>> df['new'] = df.apply(lambda row: [{'ID': row.ID, 'Fruit': item} for item in row.Fruit.split(', ')], axis=1)
>>> df_new = pd.DataFrame(df.new.sum())
>>> print(df_new)
      ID   Fruit
0  10000   Apple
1  10000  Orange
2  10000    Pear
3  10001   Apple
4  10001  Banana
尝试:

df['Fruit']=df['Fruit'].str.split(“,”)
df=df.爆炸('水果')
产出:

ID水果
万苹果
0.10000橙色
万梨
11001苹果
11001根香蕉

这是否回答了您的问题?给你:我不确定它是否相同,我没有将列拆分为更多的列,而是更多的行?对不起,你是对的-这是
爆炸的一种情况
-检查我下面的答案。谢谢,这真的很有用。这是一种糟糕的方法-你应该避免使用
。应用(…)
,除非你真的必须: