Python中如何将CSV格式字符串转换为3行3列的DataFrame?
解决方法
嘿,这个需求很常见,我给你两种简洁的实现方式,都能快速得到你想要的3行3列DataFrame:
方法一:用pandas直接读取CSV字符串
pandas的read_csv方法支持从IO对象读取数据,我们可以用StringIO把字符串包装成类文件对象,再指定行分隔符为\r即可:
import pandas as pd from io import StringIO a = '1,2,3\r4,5,6\r7,8,9\r' # 用StringIO包装字符串,指定行分隔符为\r,同时设置header=None避免把第一行当表头 df = pd.read_csv(StringIO(a), lineterminator='\r', header=None) # 查看结果 print(df)
运行后输出的DataFrame就是:
0 1 2 0 1 2 3 1 4 5 6 2 7 8 9
pandas会自动把字符串类型的数值转换成整数类型,非常省心。
方法二:手动分割字符串后转换
如果你想更灵活地控制数据处理过程,可以先手动拆分字符串,再转换成DataFrame:
import pandas as pd a = '1,2,3\r4,5,6\r7,8,9\r' # 按\r分割行,过滤掉最后一个空字符串(因为原字符串末尾有个\r) rows = [row.split(',') for row in a.split('\r') if row] # 转换为DataFrame,指定dtype=int确保数据是整数类型 df = pd.DataFrame(rows, dtype=int)
这种方法适合需要在转换前对每行数据做额外处理的场景,比如清洗数据、转换格式等。
两种方法都能得到你需要的[[1,2,3],[4,5,6],[7,8,9]]结构的DataFrame,按需选择就行~
内容的提问来源于stack exchange,提问作者Minsu Kim
相关产品推荐
相关产品推荐

