使用pandas组合多个.csv文件并保留原始结构

时间:2018-05-23 19:20:23

标签: python pandas csv glob

我有大约60个.csv文件,我想在大熊猫中加入。到目前为止,我已经使用了这个:

import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.TextField;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import org.controlsfx.control.textfield.TextFields;

/**
 *
 * @author blj0011
 */
public class JavaFXApplication193 extends Application
{

    @Override
    public void start(Stage primaryStage)
    {
        List<String> list = new ArrayList();
        list.add("Max");
        list.add("moon");
        list.add("am");
        list.add("two");

        TextField textFieldSearch = new TextField();
        TextFields.bindAutoCompletion(textFieldSearch, t -> {
            return list.stream().filter(elem
                    -> {
                return elem.toLowerCase().startsWith(t.getUserText().toLowerCase());
            }).collect(Collectors.toList());
        });

        StackPane root = new StackPane(textFieldSearch);
        Scene scene = new Scene(root, 300, 250);

        primaryStage.setTitle("Hello World!");
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args)
    {
        launch(args);
    }

}

这有点工作,只有我想要组合的文件都具有相同标题的15列结构。当我使用此代码时,只有一列填充整行的信息,每个列名称都是所有列名称的加起来(例如SEARCH_ROW,DATE,TEXT等)。

如何组合这些csv文件,同时保持原始文件的相同结构?

编辑:

所以也许我应该对我的数据更具体一些。这是我使用的.csv文件之一的快照:

As you can see it is just newspaper-data, where the last column is 'TEXT', which isn't shown completely when you open the file.

This is a part of how it looks when i have combined the data using my code.

除此之外,我可以使用

读取任何这些.csv文件没问题
import pandas as pd
import glob

total_files = glob.glob("something*.csv") 

data = [] 
for csv in total_files:
    list = pd.read_csv(csv, encoding="utf-8", sep='delimiter', engine='python')
    data.append(list)

biggerlist = pd.concat(data, ignore_index=True) 
biggerlist.to_csv("output.csv")

1 个答案:

答案 0 :(得分:0)

我解决了!

问题是我的.csv文件的文本部分中有逗号的数量。所以在删除所有逗号(仅使用搜索/替换)后,我使用了:

import pandas
import glob

filenames = glob.glob("something*.csv")
df = pandas.DataFrame()
for filename in filenames:
df = df.append(pandas.read_csv(filename, encoding="utf-8", sep=";"))

感谢所有帮助。