在 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)
输出: