使用单元格包含的列表扩展pandas数据帧

2024-04-19 21:49:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个数据帧,其中第三列是一个列表:

import pandas as pd 
pd.DataFrame([[1,2,['a','b','c']]])

我想分离这个嵌套,并用第一列和第二列的相同值创建更多的行。 最终结果应该是:

^{pr2}$

注意,这是一个简化的例子。实际上,我有多行,我想“扩展”。在

关于我的进步,我不知道如何解决这个问题。好吧,我设想我可以考虑嵌套列表的每个成员,同时考虑其他列值。然后我会用列表理解来制作更多的列表。我会继续这样做,并添加许多列表来创建一个新的数据帧。。。但这似乎有点太复杂了。更简单的解决方案呢?在


Tags: 数据importdataframepandas列表as成员解决方案
2条回答

使用单个列创建dataframe,然后添加具有常量值的列:

import pandas as pd

df = pd.DataFrame({"data": ['a', 'b', 'c']})
df['col1'] = 1
df['col2'] = 2
print df

打印:

^{pr2}$

与《手术室》描述的不完全相同的问题,但与之相关的是——更像熊猫——的情况是,你有一个不等长的列表。在这种情况下,您可以创建这样一个长格式的数据帧。在

import pandas as pd

my_dict = {'a': [1,2,3,4], 'b': [2,3]}
df = pd.DataFrame.from_dict(my_dict, orient='index')
df = df.unstack() # to format it in long form
df = df.dropna() # to drop nan values which were generated by having lists of unequal length 
df.index = df.index.droplevel(level=0) # if you don't want to store the index in the list 
# NOTE this last step results duplicate indexes

相关问题 更多 >