C#熊猫等效的read_csv

我对pandas数据框相当熟悉,但是我目前正在使用C#DataTables。我正在尝试将具有指定定界符的csv读入DataTable。在python中,这就像


import pandas 


df = pandas.read_csv(csvPath, delimiter = "|")

在C#中是否有类似的东西


string csvPath = "myPath.csv";


DataTable dt = new DataTable();


dt.CsvHelper.CsvReader(csvPath, delimiter = "|");

我看过CsvHelper文档,但是这些示例假定您创建了一个镜像csv的对象。以我为例,我不知道CSV的外观,因此将无法创建映射类。


我愿意使用除CsvHelper之外的其他东西,我只想确保它在处理除“,”以外的分隔符时是可靠的。


达令说
浏览 194回答 2
2回答

蝴蝶不菲

Cinchoo ETL-一个开源库,可使用几行代码轻松地将CSV转换为DataTableusing (var p = new ChoCSVReader("sample.csv").WithFirstLineHeader()){    var dt = p.AsDataTable();}查阅CodeProject文章以获取其他帮助。

绝地无双

您可以CsvDataReader从此存储库使用 https://github.com/ttustonic/LightGBMSharp有一个CsvDataReader在实例目录,这是一个独立的文件,所以你不需要休息。它实现了一个IDataReader接口,可用于加载DataTable。这是一个例子。假设您的csv文件如下所示:Id&nbsp; Name&nbsp; &nbsp; Age1&nbsp; &nbsp;Mark&nbsp; &nbsp; 1002&nbsp; &nbsp;Joe 323&nbsp; &nbsp;Betty&nbsp; &nbsp;55该代码:var dt = new DataTable();using (var rdr = new CsvDataReader(file, true)) // set true if the csv has header line, false otherwise{&nbsp; &nbsp; //rdr.ColumnTypes = new Type[] { typeof(int), typeof(string), typeof(int) }; Uncomment this if you know the structure of the csv&nbsp; &nbsp; dt.Load(rdr);}foreach (DataRow r in dt.Rows){&nbsp; &nbsp; for (int i = 0; i < dt.Columns.Count; i++)&nbsp; &nbsp; &nbsp; &nbsp; Console.Write($"{dt.Columns[i]}:{r[i]}&nbsp; ");&nbsp; &nbsp; Console.WriteLine("");}将给出以下输出:Id:1&nbsp; Name:Mark&nbsp; Age:100Id:2&nbsp; Name:Joe&nbsp; Age:32Id:3&nbsp; Name:Betty&nbsp; Age:55默认分隔符是TAB,可以在构造函数中更改。
打开App,查看更多内容
随时随地看视频慕课网APP