📌  相关文章
📜  在 Pandas 中将列表系列转换为一个系列

📅  最后修改于: 2022-05-13 01:55:00.909000             🧑  作者: Mango

在 Pandas 中将列表系列转换为一个系列

让我们看看如何在 Pandas 中将一系列列表转换为单个系列。

首先让我们创建一系列列表。对于这个问题,我们创建了一个包含 12 个元素的列表系列,每个列表的长度为 3,并且有 4 个列表,因此总元素为 12。当列表系列将转换为一个时,它将有 12 个元素。

Python3
import pandas as pd
data = [[1, 2, 3], [4, 5, 6], [5, 6, 7], [9, 1, 2]]
 
s = pd.Series(data)
print(s)


Python3
ls = []
 
for i in s:
    ls.extend(i)
 
s1 = pd.Series(ls)
print(s1)


Python3
ls = []
for i in s:
    ls.append(pd.Series(i))
 
s1 = pd.concat([*ls]).reset_index(drop = True)
 
print(s1)


Python3
s1 = s.apply(pd.Series).stack().reset_index(drop = True)
print(s1)


输出:

方法一:使用extend()方法

在此方法中,我们遍历 Series 的每个元素并将其添加到列表中,注意我们使用的是extend()方法。

Python3

ls = []
 
for i in s:
    ls.extend(i)
 
s1 = pd.Series(ls)
print(s1)

输出:

方法 2:使用pd.concat()方法

我们遍历系列中的每个列表并将其转换为系列对象,然后我们沿行连接所有系列以形成最终系列。我们还需要重置索引。

Python3

ls = []
for i in s:
    ls.append(pd.Series(i))
 
s1 = pd.concat([*ls]).reset_index(drop = True)
 
print(s1)

输出:

方法 3:使用apply()方法。

Series 对象有一个 apply() 方法,该方法接受一个函数作为参数并将其应用于每个元素。然后我们堆叠所有元素并重置索引。

Python3

s1 = s.apply(pd.Series).stack().reset_index(drop = True)
print(s1)

输出: