【问题标题】:Load data from txt with pandas使用 pandas 从 txt 加载数据
【发布时间】:2014-02-28 01:59:37
【问题描述】:

我正在加载一个包含浮点数和字符串数据混合的 txt 文件。我想将它们存储在一个可以访问每个元素的数组中。现在我只是在做

import pandas as pd

data = pd.read_csv('output_list.txt', header = None)
print data

这是输入文件的结构:1 0 2000.0 70.2836942112 1347.28369421 /file_address.txt

现在数据作为唯一列导入。如何划分它,以便分别存储不同的元素(这样我可以调用data[i,j])?以及如何定义标题?

【问题讨论】:

    标签: python io pandas


    【解决方案1】:

    你可以使用:

    data = pd.read_csv('output_list.txt', sep=" ", header=None)
    data.columns = ["a", "b", "c", "etc."]
    

    在您的代码中添加sep=" ",在引号之间留一个空格。因此 pandas 可以检测值之间的空格并按列排序。数据列用于命名您的列。

    【讨论】:

    • 谢谢!如何访问表格的元素?
    • 如果要调用列,请使用 data.a 如果您将列命名为“a”。
    • 或者如果要调用单行可以使用data.a[1](本例调用列的第一行)
    • 太棒了!这解决了一切
    • 破解!它奏效了。
    【解决方案2】:

    @Pietrovismara 的解决方案是正确的,但我想补充一下:与其使用单独的行来添加列名,不如从 pd.read_csv 执行此操作。

    df = pd.read_csv('output_list.txt', sep=" ", header=None, names=["a", "b", "c"])
    

    【讨论】:

      【解决方案3】:

      我想补充一下上面的答案,你可以直接使用

      df = pd.read_fwf('output_list.txt')
      

      fwf 代表固定宽度的格式化行。

      【讨论】:

        【解决方案4】:

        你可以用这个

        import pandas as pd
        dataset=pd.read_csv("filepath.txt",delimiter="\t")
        

        【讨论】:

        【解决方案5】:

        你可以这样做:

        import pandas as pd
        df = pd.read_csv('file_location\filename.txt', delimiter = "\t")
        

        (如,df = pd.read_csv('F:\Desktop\ds\text.txt', delimiter = "\t")

        【讨论】:

          【解决方案6】:

          如果你没有为数据分配索引并且你不确定间距是多少,你可以使用让pandas分配一个索引并寻找多个空格。

          df = pd.read_csv('filename.txt', delimiter= '\s+', index_col=False)
          

          【讨论】:

          • 等效地,您可以指定更详细的参数delim_whitespace=True 而不是'\s+' 分隔符
          【解决方案7】:

          您可以像这样使用 read_table 命令导入文本文件:

          import pandas as pd
          df=pd.read_table('output_list.txt',header=None)
          

          加载后需要进行预处理

          【讨论】:

            【解决方案8】:

            基于pandas的最新变化,可以使用, read_csv , read_table 已弃用:

            import pandas as pd
            pd.read_csv("file.txt", sep = "\t")
            

            【讨论】:

              【解决方案9】:

              我通常先看一下数据,或者只是尝试导入它并执行 data.head(),如果你看到列用 \t 分隔,那么你应该指定 sep="\t" 否则,sep = " "

              import pandas as pd     
              data = pd.read_csv('data.txt', sep=" ", header=None)
              

              【讨论】:

              • 小心添加“header=None”并添加具有最大列数的附加行,您将收到类似“pandas.errors.ParserError: Error tokenizing data. C error: Expected N fields in M行”很难理解为什么。删除“header=None”可以解决问题。
              【解决方案10】:

              你可以使用它是最有帮助的。

              df = pd.read_csv(('data.txt'), sep="\t", skiprows=[0,1], names=['FromNode','ToNode'])
              

              【讨论】:

                【解决方案11】:

                如果要加载指定列名的txt文件,可以使用下面的代码。它对我有用。

                import pandas as pd    
                data = pd.read_csv('file_name.txt', sep = "\t", names = ['column1_name','column2_name', 'column3_name'])
                

                【讨论】:

                  猜你喜欢
                  • 2018-09-01
                  • 2021-10-12
                  • 2017-11-20
                  • 1970-01-01
                  • 2019-01-31
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2020-11-14
                  相关资源
                  最近更新 更多