📜  从 itertuples 创建一个新的 DataFrame,namedtuple 使用系列或 list() - Python (1)

📅  最后修改于: 2023-12-03 14:49:17.743000             🧑  作者: Mango

从 itertuples 创建一个新的 DataFrame,以 namedtuple 使用 series 或 list()

在 Pandas 中,使用 itertuples() 方法可以遍历 DataFrame 的行数据,并返回 pandas.core.frame.Pandas 类型的 namedtuple 对象,这个对象可以被转换为 Pandas Series 或 Python List 类型。

1. 使用 Pandas Series
import pandas as pd

# 创建一个简单的 DataFrame
df = pd.DataFrame({'A': [1, 2], 'B': [3, 4]})

# 遍历 DataFrame 行数据,返回 namedtuple 对象
for row in df.itertuples(index=False):
    print(row)

# 转化为 Pandas Series 类型
rows_series = [pd.Series(row) for row in df.itertuples(index=False)]

# 创建新的 DataFrame,使用 Series
new_df = pd.DataFrame(rows_series, columns=df.columns)

print(new_df)

输出:

Pandas(A=1, B=3)
Pandas(A=2, B=4)

   A  B
0  1  3
1  2  4
2. 使用 Python List
import pandas as pd

# 创建一个简单的 DataFrame
df = pd.DataFrame({'A': [1, 2], 'B': [3, 4]})

# 遍历 DataFrame 行数据,返回 namedtuple 对象
for row in df.itertuples(index=False):
    print(row)

# 转化为 Python List 类型
rows_list = [list(row) for row in df.itertuples(index=False)]

# 创建新的 DataFrame,使用 List
new_df = pd.DataFrame(rows_list, columns=df.columns)

print(new_df)

输出:

Pandas(A=1, B=3)
Pandas(A=2, B=4)

   A  B
0  1  3
1  2  4

在以上两个例子中,我们使用 itertuples 方法遍历一个简单的 DataFrame,并将返回的 namedtuple 对象转换为 Pandas Series 或 Python List 类型,然后使用这些类型创建新的 DataFrame。

总结

使用 itertuples() 方法可以遍历 Pandas DataFrame 的每一行数据,并返回 namedtuple 对象,是一种快速创建新 DataFrame 的方法。通过将 namedtuple 对象转换为 Pandas Series 或 Python List 类型,我们可以轻松地创建新 DataFrame。