从 Excel 到元组列表

Gig*_*sso 10 python excel

我有一个 Excel (.xlsx) 文件,其中包含两列短语。例如:

John  I have a dog     
Mike  I need a cat
Nick  I go to school
Run Code Online (Sandbox Code Playgroud)

我想在 Python 中导入它并获得一个元组列表,如:

[('John', 'I have a dog'), ('Mike', 'I need a cat'), ('Nick', 'I go to school'), ...]
Run Code Online (Sandbox Code Playgroud)

我能做什么?

Ale*_* B. 5

您可以使用pd.read_excel. 您需要关心标题是否有一些。

正如你所说,它返回一个数据帧。就我而言,我有以下几点。

df = pd.read_excel("data.xlsx")
print(df)
#         name         message
# 0       John    I have a dog
# 1       Mike    I need a cat
# 2       Nick  I go to school
Run Code Online (Sandbox Code Playgroud)

然后,可以使用to_numpy. 它返回一个numpy数组。

如果你想要一个列表,我们使用该numpy方法tolist将其转换为list

out = df.to_numpy().tolist()
print(out)
# [['John', 'I have a dog'],
#  ['Mike', 'I need a cat'],
#  ['Nick', 'I go to school']]
Run Code Online (Sandbox Code Playgroud)

如您所见,输出是一个列表列表。如果你想要一个元组列表,只需投射它们:

# for getting list of tuples
out = [tuple(elt) for elt in out]
print(out)
# [('John', 'I have a dog'), 
#  ('Mike', 'I need a cat'), 
#  ('Nick', 'I go to school')]
Run Code Online (Sandbox Code Playgroud)

注意:旧的解决方案是调用values而不是to_numpy(). 但是,文档明确建议使用to_numpy和宽恕values

希望有帮助!