为何一个元组输出无引号另一个带引号?能否去除引号?
元组元素带引号的原因及去除方法
原因分析
第二个元组的元素带引号,本质是因为df8['research']这一列的数据类型是字符串(str),而第一个元组的df['Entity']是整数(int)类型。Python打印时会用引号标识字符串类型,用来和数值类型做区分,所以你看到的引号是类型的直观体现,不是元素本身带的额外字符。
去除方法
要让元组元素变成无引号的整数,核心是把字符串类型转成整数类型,有几种常用方式:
生成元组时直接转换
用生成器表达式逐个把字符串转成整数:Research = tuple(int(x) for x in df8['research'])这样生成的元组元素都是整数,打印出来就不会有引号了。
先转换DataFrame列的类型再生成元组
先把df8['research']列转成整数类型,再生成元组:df8['research'] = df8['research'].astype(int) Research = tuple(df8['research'])注意:如果列里存在无法转成整数的内容(比如字母、空字符串),
astype(int)会报错,这时候可以用pd.to_numeric做容错处理:df8['research'] = pd.to_numeric(df8['research'], errors='coerce') # 过滤掉转换后产生的NaN值(可选) Research = tuple(x for x in df8['research'] if not pd.isna(x))处理可能的非数字字符串
如果不确定列里全是数字字符串,可以先判断再转换,避免报错:Research = tuple(int(x) for x in df8['research'] if str(x).isdigit())
内容的提问来源于stack exchange,提问作者Andrew Pike
相关产品推荐
相关产品推荐

