Python 如何将列表中的项转换为单独的列值?

Python 如何将列表中的项转换为单独的列值?,python,pandas,list,dataframe,Python,Pandas,List,Dataframe,我正在用python创建一个数据帧,我正在努力解决这个问题。我正在尝试分析护肤成分,我想创建一个数据框架,我可以定期更新新产品 产品成分作为列表项存储 最后,数据帧应该如下所示: product 1 = [ingredient 1, ingredient 2, ingredient 3] ingredient 1 ingredient 2 ingredient 3 product 1 XYZ XYZ XYZ pr

我正在用python创建一个数据帧,我正在努力解决这个问题。我正在尝试分析护肤成分,我想创建一个数据框架,我可以定期更新新产品

产品成分作为列表项存储

最后,数据帧应该如下所示:

product 1 = [ingredient 1, ingredient 2, ingredient 3]

           ingredient 1  ingredient 2  ingredient 3  
product 1    XYZ             XYZ          XYZ  
product 2    XYZ             XYZ          XYZ   
product 3    XYZ             XYZ          XYZ 
XYZ值是我使用的列表中的项目。我应该如何处理这个问题?同样重要的是,保持项目/成分的顺序,并确保将其正确分配为成分1是列表中的第一项,成分2是列表中的第二项,等等

我只找到了将项目转换为不同观察值列表的解决方案,而不是转换为单个观察值的列值


是否有一种功能或方法可用于解决此问题?

您可以轻松使用panda data frame:

  my_data = np.array([['','ingredient1', 'ingredient2', 'ingredient3'],['product1', 45, 35, 25], ['product2', 44,34,24], ['product3', 43,33,23]])
my_data
这给了你:

array([['', 'ingredient1', 'ingredient2', 'ingredient3'],
       ['product1', '45', '35', '25'],
       ['product2', '44', '34', '24'],
       ['product3', '43', '33', '23']], dtype='|S11')
然后,您可以根据您的数据制作数据帧:

   df = pd.DataFrame(data=my_data[1:,1:],
                  index=my_data[1:,0],
                  columns=my_data[0,1:])
df
并生产:


您可以轻松使用熊猫数据框:

  my_data = np.array([['','ingredient1', 'ingredient2', 'ingredient3'],['product1', 45, 35, 25], ['product2', 44,34,24], ['product3', 43,33,23]])
my_data
这给了你:

array([['', 'ingredient1', 'ingredient2', 'ingredient3'],
       ['product1', '45', '35', '25'],
       ['product2', '44', '34', '24'],
       ['product3', '43', '33', '23']], dtype='|S11')
然后,您可以根据您的数据制作数据帧:

   df = pd.DataFrame(data=my_data[1:,1:],
                  index=my_data[1:,0],
                  columns=my_data[0,1:])
df
并生产:


如果所提供的数据框正确,您的问题被截断了?它现在应该可以工作了(我不小心过早地点击了submit),或者尝试将产品名称放入它们自己的行中?您的原始数据是什么样子的?如果所提供的数据框正确,您的问题被截断了?它现在应该可以工作了(我不小心过早点击了提交)也许也可以尝试将产品名称放入它们自己的行中?您的原始数据是什么样子的?我建议命名第一列,以便更容易对其运行列操作,但这是OP必须做出的个人选择,而不是这个答案的错误。是的,这实际上是我在寻找的!谢谢这只是一个idea这样您就可以将数据标签和索引保存在单独的numpy数组中,然后将它们分配到数据帧中,而不是直接在数据帧中创建列表。我建议命名第一列,以便更容易在其上运行列操作,但这是OP必须做出的个人选择,而不是这个答案的错误。是的,这正是我想要的!谢谢这只是一个想法,您可以将数据标签和索引保存在单独的numpy数组中,然后将它们分配到数据帧中,而不是直接在数据帧中创建列表。