直接从GitHub上读取CSV文件

本文详细介绍了如何解决使用pandas库从GitHub读取CSV文件时遇到的错误,提供了正确的URL格式,并展示了数据读取后的初步形状信息。

错误百出

import pandas as pd
oecd_bli_ = pd.read_csv("https://github.com/ageron/handson-ml/blob/master/datasets/lifesat/oecd_bli_2015.csv", 
                        thousands=',', error_bad_lines=False)

在这里插入图片描述
在这里插入图片描述

不能直接下载啊啊啊!!!

import pandas as pd
oecd_bli_ = pd.read_csv("https://raw.githubusercontent.com/ageron/handson-ml/master/datasets/lifesat/oecd_bli_2015.csv", thousands=',')

oecd_bli_.shape

在这里插入图片描述

在 Unity 项目中读取和解析 CSV 文件是一个常见的需求,尤其是在处理配置数据、表格信息或外部资源时。以下介绍几种常见且有效的方法。 ### 使用 TextAsset 直接读取 对于小型的 CSV 文件,可以通过 `TextAsset` 类将其作为文本资源加载,然后通过字符串操作进行解析。CSV 文件应放置在 `Resources` 文件夹下以便访问。 ```csharp using UnityEngine; public class CSVReader : MonoBehaviour { public TextAsset csvFile; // 在 Inspector 中拖入你的 CSV 文件 public string[][] dataArray; void Start() { string[] lines = csvFile.text.Split('\n'); // 按行分割 dataArray = new string[lines.Length][]; for (int i = 0; i < lines.Length; i++) { dataArray[i] = lines[i].Split(','); // 按逗号分割每行内容 } // 示例:输出第一行第二列的数据 Debug.Log(dataArray[0][1]); } } ``` 该方法适用于简单的 CSV 文件结构,并且可以轻松集成到项目中[^2]。 ### 使用通用字符串解析器(适合复杂结构) 如果 CSV 文件包含复杂的格式,例如字段中包含逗号或换行符,建议使用更通用的解析方式,比如逐字符解析以识别引号包裹的内容。 ```csharp using System.Collections.Generic; using UnityEngine; public class AdvancedCSVReader : MonoBehaviour { public TextAsset csvFile; public List<List<string>> dataRows = new List<List<string>>(); void Start() { using (System.IO.StringReader reader = new System.IO.StringReader(csvFile.text)) { string line; while ((line = reader.ReadLine()) != null) { dataRows.Add(ParseCSVLine(line)); } } // 示例:输出第一行第二列的数据 Debug.Log(dataRows[0][1]); } List<string> ParseCSVLine(string line) { List<string> result = new List<string>(); bool inQuotes = false; string currentField = ""; foreach (char c in line) { if (c == '"') { inQuotes = !inQuotes; } else if (c == ',' && !inQuotes) { result.Add(currentField); currentField = ""; } else { currentField += c; } } result.Add(currentField); // 添加最后一个字段 return result; } } ``` 这种方法能够正确处理包含逗号或换行的字段,适合需要高兼容性的场景[^1]。 ### 使用第三方库简化开发 Unity 社区中有许多现成的 CSV 解析库,例如 [CsvParser](https://github.com/Forceu/GCsvParser),它们提供了更强大的功能,如类型转换、异步加载等。 ```csharp using CsvParser; using UnityEngine; public class CsvParserExample : MonoBehaviour { public TextAsset csvFile; void Start() { using (var parser = new CsvParser.CsvParser(new System.IO.StringReader(csvFile.text))) { while (parser.Read()) { for (int i = 0; i < parser.FieldCount; i++) { Debug.Log($"Row {parser.LineNumber}, Column {i}: {parser[i]}"); } } } } } ``` 这种方式减少了手动编写解析逻辑的工作量,并提高了代码的健壮性。 ---
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值