为了账号安全,请及时绑定邮箱和手机立即绑定

C#熊猫等效的read_csv

C#熊猫等效的read_csv

C#
达令说 2021-05-18 17:14:59
我对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之外的其他东西,我只想确保它在处理除“,”以外的分隔符时是可靠的。
查看完整描述

2 回答

?
蝴蝶不菲

TA贡献1810条经验 获得超4个赞

Cinchoo ETL-一个开源库,可使用几行代码轻松地将CSV转换为DataTable


using (var p = new ChoCSVReader("sample.csv").WithFirstLineHeader())

{

    var dt = p.AsDataTable();

}

查阅CodeProject文章以获取其他帮助。


查看完整回答
反对 回复 2021-05-23
?
绝地无双

TA贡献1946条经验 获得超4个赞

您可以CsvDataReader从此存储库使用 https://github.com/ttustonic/LightGBMSharp


有一个CsvDataReader在实例目录,这是一个独立的文件,所以你不需要休息。


它实现了一个IDataReader接口,可用于加载DataTable。


这是一个例子。假设您的csv文件如下所示:


Id  Name    Age

1   Mark    100

2   Joe 32

3   Betty   55

该代码:


var dt = new DataTable();

using (var rdr = new CsvDataReader(file, true)) // set true if the csv has header line, false otherwise

{

    //rdr.ColumnTypes = new Type[] { typeof(int), typeof(string), typeof(int) }; Uncomment this if you know the structure of the csv

    dt.Load(rdr);

}

foreach (DataRow r in dt.Rows)

{

    for (int i = 0; i < dt.Columns.Count; i++)

        Console.Write($"{dt.Columns[i]}:{r[i]}  ");

    Console.WriteLine("");

}

将给出以下输出:


Id:1  Name:Mark  Age:100

Id:2  Name:Joe  Age:32

Id:3  Name:Betty  Age:55

默认分隔符是TAB,可以在构造函数中更改。


查看完整回答
反对 回复 2021-05-23
  • 2 回答
  • 0 关注
  • 193 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信