Python函数只返回列数据的第一个值
我有一个从文件中读取学校名称的函数,但它只返回第一个学校名称。 我该怎么做才能让它返回所有的名字,但是如果我使用打印(sch),它会打印所有的名字。谢谢Python函数只返回列数据的第一个值,python,function,csv,Python,Function,Csv,我有一个从文件中读取学校名称的函数,但它只返回第一个学校名称。 我该怎么做才能让它返回所有的名字,但是如果我使用打印(sch),它会打印所有的名字。谢谢 def school(): schools_from_csv = pd.read_csv("School_data.csv", engine='python') cht = school_from_csv.school_name.str.strip() for sch in cht: return sch
def school():
schools_from_csv = pd.read_csv("School_data.csv", engine='python')
cht = school_from_csv.school_name.str.strip()
for sch in cht:
return sch
#prints(sch)
return None
college=school()
由于使用了return,循环在cht中找到第一个元素时将终止 要获取整个列表,您可以直接返回cht
def school():
schools_from_csv = pd.read_csv("School_data.csv", engine='python')
cht = school_from_csv.school_name.str.strip()
return cht
college=school()
或者,如果希望函数逐个生成值,可以使用生成器并将for循环更改为
for sch in cht:
yield sch
您可以阅读有关生成器的更多信息。如果将返回
替换为收益
def school():
schools_from_csv = pd.read_csv("School_data.csv", engine='python')
for sch in schools_from_csv:
yield sch.school_name.str.strip()
return None
college = school()
for col in college:
print(col)
或返回for
循环后的列表
def school():
schools = []
schools_from_csv = pd.read_csv("School_data.csv", engine='python')
for sch in schools_from_csv:
schools.append(sch.school_name.str.strip())
return schools
您似乎还想从csv(而非cht)循环访问
schools(学校)
,而不是cht
。@ChrisDoyle共享的此代码解决了我的问题:
def school():
schools_from_csv = pd.read_csv("School_data.csv", engine='python')
cht=schools_from_csv.school_name.str.strip().tolist()
return cht
school()
你有什么环?创建后只需返回
cht
。所有名称都已在cht中,因此只需返回即可。感谢您的快速响应。我还注意到。实际上,我正在将参数返回到另一个函数,我怎样才能使它继续循环到末尾呢?在cht
上循环并将项目附加到schu list
上有什么意义。为什么不直接返回cht
您可以将每个元素添加到一个新列表中,并在末尾返回列表,就像我所做的那样。@banji结尾的“继续循环”是什么意思?@ChrisDoyle是的。我已经改变了。您可以使用generator循环并一次获取一个值。list(cht)
是否会创建与您在schools
中创建的列表相同的列表?@Aryerez是,假设循环中不需要更多操作。我遇到错误“generator object Entity_name at 0x10847230”,我想使用“schools_from”中的“school_name”列进行循环_csv@banji你从哪儿弄来的?