Python 将具有不同元素数的元组列表转换为数据帧中的列
这是我的第一篇文章。我正在为大学的一个工程项目编写一个组合算法。我正在使用Python和Pandas 我有一个包含多个列的Pandas数据框架,其中一个是超过20k个元组的列表。Python 将具有不同元素数的元组列表转换为数据帧中的列,python,pandas,Python,Pandas,这是我的第一篇文章。我正在为大学的一个工程项目编写一个组合算法。我正在使用Python和Pandas 我有一个包含多个列的Pandas数据框架,其中一个是超过20k个元组的列表。 每个元组的元素数从1到6不等。 i、 e: 我想将其转换为6列。空白列,没有条目应该归零。 我该怎么做呢 谢谢……您可以使用列表理解来扩展元组。给定多个列表,您可以将它们添加到一起。例如,['apple']+['pear']=['apple','pear']。和['apple']*2=['apple','apple']
每个元组的元素数从
1
到6不等。
i、 e:
我想将其转换为6
列。空白列,没有条目应该归零。
我该怎么做呢
谢谢……您可以使用列表理解来扩展元组。给定多个列表,您可以将它们添加到一起。例如,['apple']+['pear']=['apple','pear']。和['apple']*2=['apple','apple'] 同样的原理也适用于元组,所以(10,20)+(0,)*4=(10,20,0,0,0,0)。因此,元组用零展开 首先检查值是否为元组(请参见第一行)。如果不是,则使用该值并将其作为元组展开
s = pd.Series([(10),
(10,20),
(20,30,40),
(20,30,40,50),
(10,20,30,40,50),
(10,20,30,40,50,60)])
>>> s
0 10
1 (10, 20)
2 (20, 30, 40)
3 (20, 30, 40, 50)
4 (10, 20, 30, 40, 50)
5 (10, 20, 30, 40, 50, 60)
dtype: object
>>> pd.DataFrame([t + (0,) * (6 - len(t)) if isinstance(t, tuple)
else (t,) + (0,) * 5
for t in s])
0 1 2 3 4 5
0 10 0 0 0 0 0
1 10 20 0 0 0 0
2 20 30 40 0 0 0
3 20 30 40 50 0 0
4 10 20 30 40 50 0
5 10 20 30 40 50 60
s = pd.Series([(10),
(10,20),
(20,30,40),
(20,30,40,50),
(10,20,30,40,50),
(10,20,30,40,50,60)])
>>> s
0 10
1 (10, 20)
2 (20, 30, 40)
3 (20, 30, 40, 50)
4 (10, 20, 30, 40, 50)
5 (10, 20, 30, 40, 50, 60)
dtype: object
>>> pd.DataFrame([t + (0,) * (6 - len(t)) if isinstance(t, tuple)
else (t,) + (0,) * 5
for t in s])
0 1 2 3 4 5
0 10 0 0 0 0 0
1 10 20 0 0 0 0
2 20 30 40 0 0 0
3 20 30 40 50 0 0
4 10 20 30 40 50 0
5 10 20 30 40 50 60