Python 如何将列表中的项转换为单独的列值?
我正在用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
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数组中,然后将它们分配到数据帧中,而不是直接在数据帧中创建列表。