标签: opencsv

如何使用 pandas 将 csv 文件读入数据框

我刚刚得到一个 csv 文件,我想使用 pandas 将数据集加载为数据框。但是,我对这种数据格式有点困惑。

这是两行数据的示例:

Name=John, Gender=M, BloodType=A, Location=New York, Age=18
Name=Mary, Gender=F, BloodType=AB, Location=Seatle, Age=30
Run Code Online (Sandbox Code Playgroud)

如何将此数据集加载到包含列(姓名、性别、血型等)的数据框中?

如果有人给我一些入门建议,我将不胜感激!

python-3.x opencsv pandas

3
推荐指数
1
解决办法
4439
查看次数

OpenCSV CsvToBean:对于没有 BOM 的 UTF-8,未读取第一列

使用 OpenCSV 解析BOM 的 UTF-8 文档会导致第一列无法读取。提供相同的文档内容作为输入,但使用BOM 以 UTF-8 编码可以正常工作。

我专门将字符集设置为UTF-8

    fileInputStream = new FileInputStream(file);
    inputStreamReader = new InputStreamReader(fileInputStream, StandardCharsets.UTF_8);
    reader = new BufferedReader(inputStreamReader);
    HeaderColumnNameMappingStrategy<Bean> ms = new HeaderColumnNameMappingStrategy<Bean>();
    ms.setType(Bean.class);
    CsvToBean<Bean> csvToBean = new CsvToBeanBuilder<Bean>(reader).withType(Bean.class).withMappingStrategy(ms)
            .withSeparator(';').build();
    csvToBean.parse();
Run Code Online (Sandbox Code Playgroud)

我创建了一个示例项目,可以在其中重现问题: https ://github.com/dajoropo/csv2beanSample

运行单元测试,您可以看到不带 BOM 的 UTF-8 文件如何失败,而带 BOM 的文件如何正常工作。

错误出现在第二个断言中,因为未读取第一列。结果是:

[Bean [a= null , b=第二个, c=第三]]

有什么提示吗?

java csv utf-8 character-encoding opencsv

3
推荐指数
1
解决办法
8142
查看次数

在java中读取具有已知和未知列的CSV文件

我想知道是否有一种方法可以读取包含已知和未知列的 csv 文件。

例如,第一个 csv 文件中的列是: id、名字、姓氏、城市、国家/地区未知列是城市和国家/地区

第二个 csv 文件是:

id、名字、姓氏、电话号码未知列是电话号码

我想要解析的对象是:

public class Person {

    Long id;
    String firstname;
    String lastname;

    Map<String,String> additionalInfo;

}
Run Code Online (Sandbox Code Playgroud)

extraInfo 映射将包含“未知”列作为键,值将是该列中的行值。

有任何想法吗?

谢谢。

java csv spring opencsv

3
推荐指数
1
解决办法
2845
查看次数

如何解析Opencsv HeaderColumnNameMappingStrategy中的非字符串值

我正在使用HeaderColumnNameMappingStrategy将带有标头的csv文件映射到JavaBean.字符串值解析正常,但csv中的任何"true"或"false"值都不映射到JavaBean,我从PropertyDescriptor获得以下异常:

java.lang.IllegalArgumentException: argument type mismatch
Run Code Online (Sandbox Code Playgroud)

它出现的代码在CsvToBean第64行:

protected T processLine(MappingStrategy<T> mapper, String[] line) throws  
 IllegalAccessException, InvocationTargetException, InstantiationException, IntrospectionException {
    T bean = mapper.createBean();
    for(int col = 0; col < line.length; col++) {
        String value = line[col];
        PropertyDescriptor prop = mapper.findDescriptor(col);
        if (null != prop) {
            Object obj = convertValue(value, prop);
            // this is where exception is thrown for a "true" value in csv
            prop.getWriteMethod().invoke(bean, new Object[] {obj});
        }
    }
    return bean;
}

 protected PropertyEditor getPropertyEditor(PropertyDescriptor desc) throws   
       InstantiationException, IllegalAccessException {
    Class<?> …
Run Code Online (Sandbox Code Playgroud)

javabeans opencsv

2
推荐指数
1
解决办法
6996
查看次数

尝试读取文件时获取java.io.FileNotFoundException

我正在编写一个小应用程序,它读取csv文件并将内容显示到JList中.

我目前的问题是new FileReader(file)代码一直给我一个java.io.FileNotFoundException错误,我不太清楚为什么.

loadFile.addActionListener(new ActionListener()
        {
            @Override
            public void actionPerformed(ActionEvent actionEvent)
            {
                JFileChooser fileChooser = new JFileChooser();
                fileChooser.setCurrentDirectory(new File("~/"));

                if (fileChooser.showOpenDialog(instance) == JFileChooser.APPROVE_OPTION)
                {
                    File file = fileChooser.getSelectedFile();
                    CSVReader reader = new CSVReader(new FileReader(file.getAbsolutePath()));
                    fileLocation.setText(file.getAbsolutePath());

                }
            }
        });
Run Code Online (Sandbox Code Playgroud)

java swing jfilechooser filenotfoundexception opencsv

2
推荐指数
1
解决办法
1531
查看次数

在没有 Python 包的情况下计算标准偏差?

我想弄清楚如何创建一个脚本来计算文件的标准偏差。例如,假设我 DLed 一个带有值列表的 csv。我想通过运行 python 程序来找到这些值的 SD。我们这里没有使用 numpy!

statistics standard-deviation python-3.x opencsv

2
推荐指数
2
解决办法
2万
查看次数

在Eclipse中导入库

我有一个Eclipse项目,我将库"OpenCSV"作为外部JAR导入.该库现在显示在我的项目"参考库"下.

但是,当我打电话时:

CSVReader reader = new CSVReader(new FileReader(csvPath));
Run Code Online (Sandbox Code Playgroud)

Eclipse抛出一个错误,指出没有定义构造函数CSVReader.csvPath的类型为String.

有什么想法吗?

编辑:截图

我的工作区

java eclipse opencsv

2
推荐指数
1
解决办法
1508
查看次数

ColdFusion OpenCSV打开内存中的文件

想象一下你需要动态解析的一种CSV文件.

它适用于本地磁盘存储,但不适用于ram:///

<cfscript>

cfhttp(
    method = "Get",
    url = "http://real-chart.finance.yahoo.com/table.csv?s=YHOO&d=4&e=2&f=2016&g=d&a=3&b=12&c=2016&ignore=.csv",
    //path = "C:\CFTemp",
    path = "ram:///",
    file = "currentCSV.csv"
);

cfdirectory(
    name="files",
    action="list",
    directory="ram:///",
    recurse="true",
    type="all"
);
writeDump(files);

myfile = FileRead("ram:///currentCSV.csv");
WriteOutput("#myfile#");


fileReader = createobject("java","java.io.FileReader");
fileReader.init("ram:///currentCSV.csv");  // -ERROR

csvReader = createObject("java","com.opencsv.CSVReader");
csvReader.init(fileReader, ",");
ArrayData = csvReader.readAll();
writeDump(ArrayData);

</cfscript>
Run Code Online (Sandbox Code Playgroud)

-ERR ram:/currentCSV.csv(文件名,目录名或卷标语法不正确)

这里有什么问题?

ColdFusion 11,OpenCSV 3.7

csv coldfusion ram opencsv cfml

2
推荐指数
1
解决办法
222
查看次数

OPENCSV将第一列填充为空

我正在尝试使用HeaderColumnNameMappingStrategy使用opencsv读取csv文件。Opencsv每次都将我的csv第一列填充为null。这是我的代码:

实体类别:

@Entity
@Table(name = "MyEntity")
public class MyEntity {

    @CsvBindByName(column = "status", required = true)
    @Column(name = "status", length = 5, nullable = false)
    private String status;

    @CsvBindByName(column = "type", required = true)
    @Column(name = "type", length = 5, nullable = false)
    private String type;

    @CsvBindByName(column = "percentage", required = true)
    @Column(name = "percentage", nullable = false)
    private Integer percentage;

    @Column(name = "date", nullable = false)
    @CsvBindByName(column = "date", required = true)
    @CsvDate(value = "yyyy-MM-dd")
    private Date date;
} …
Run Code Online (Sandbox Code Playgroud)

opencsv

2
推荐指数
1
解决办法
1412
查看次数

构造函数 csvreader(reader char) 已弃用错误

我想用 servlet 将文件 CSV 上传到 MySQL,我有这样的代码,但我的代码出错了。

package ServToDb;

import java.io.*;
import java.sql.*;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;

import com.opencsv.CSVReader;


import Connection.Database;

@WebServlet("/ImportCSVtoDB")
public class ImportCSVtoDB extends HttpServlet {
    private static final long serialVersionUID = 1L;       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public ImportCSVtoDB() {
        super();
        // TODO Auto-generated constructor stub
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        doPost(request, response);
    }


    /**
     * @see …
Run Code Online (Sandbox Code Playgroud)

java csv opencsv reader

2
推荐指数
2
解决办法
3223
查看次数