我需要提取csv文件中指定列中的指定字符,我得到一个错误提示"TypeError:元组索引必须是整数或切片,而不是字符串">
my CSV file
name,age,sex
li,26,M
mu,30,F
import os
import pandas as pd
import glob
for i in glob.glob('H:\1\*.csv'):
result_1=pd.read_csv(i,encoding="utf-8",dtype=object)
SubNetwork_list=list(result_1.groupby(["name"]))
for SubNetwork in SubNetwork_list:
SubNetwork_pd=pd.DataFrame(SubNetwork["li"])
SubNetwork_pd.to_csv("H:\2\li.csv",encoding="utf-8",
header=True,index=False,mode='a')
控制台错误
SubNetwork_pd=pd.DataFrame(SubNetwork['li'])
TypeError: tuple indices must be integers or slices, not str
在groupby上迭代时,该迭代器的每个元素都是(group_name, group_dataframe)
的元组。
要遍历一个groupby,需要这样做:
SubNetwork_list=list(result_1.groupby(["name"]))
for SubNetwork_name, SubNetwork in SubNetwork_list:
将元组解包。
更多信息:Docs
PS:您不需要在groupby对象上调用list()
。你可以在不这样做的情况下迭代它,这样更快。