将单列 csv 值存储为元组列表(不带尾随逗号)的 python 代码是什么?

What is the python code to store a single column of csv values as a list of tuples (without trailing commas)?

我有一个包含单行值的 csv 文件。我想将它保存为元组列表,如下所示。每当我尝试这样做时,它都会在每个元组中以逗号结尾存储它。

我想要的:

[('mdl_analytics_models'),('mdl_assignment_upgrade'), ('mdl_assignment'), ('mdl_user')]

我得到的是:

[('mdl_analytics_models',), ('mdl_assignment_upgrade',), ('mdl_assignment',), ('mdl_user',)]

假设我的 csv 文件如下所示:

| tablename |
| -------- |
| mdl_analytics_models    | 
| mdl_assignment_upgrade   | 
|mdl_assignment|
|mdl_user|

我已经从类似问题中尝试了这些代码片段,这些代码片段为我提供了尾随逗号的输出:

import pandas as pd
# Create a dataframe from csv
df = pd.read_csv('data.csv', delimiter=',')
# Create a list of tuples for Dataframe rows using list comprehension
list_of_tuples = [tuple(row) for row in df.values]
# Print list of tuple
print(list_of_tuples)

with open('data.csv', 'r') as read_obj:
    # pass the file object to reader() to get the reader object
    csv_reader = reader(read_obj)
    # Pass reader object to list() to get a list of lists
    data = list(zip(csv_reader))

您目前正在阅读所有的专栏(即使只有一个专栏),并返回单数元组。

如果没有逗号,您“想要的输出”中的括号没有任何意义。

如果你真的只想要第一列而不是所有列,你需要索引数据框

df = pd.read_csv('data.csv', delimiter=',')
# list of strings 
tables = list(df["tablename"])
# list of single tuples 
table_tuples = [ (t,) for t in df["tablename"] ] 

要在字符串 中获取括号 ,对其进行格式化(或先使用 pandas 在列上应用函数),然后收集

tables = [ f"({t})" for t in df["tablename"] ]