【问题标题】:Missing column values缺少列值
【发布时间】:2017-08-03 21:13:22
【问题描述】:

我已经水平合并了十个txt文件(A_1,A_2......A_10和B_1,B_2......B_10),输出为A_B_1,A_B_2......A_B_3...... .....问题是文件A的行数较大且固定(4320),而B的行数较小且波动(2689,3078 ...),所以每当我尝试使用numpy加载合并文件时,当 B 没有值时,我从该行开始面临错误的列数错误。任何有关如何解决此问题的建议将不胜感激。

import numpy as np
import matplotlib.pyplot as plt
%matplotlib notebook
data=np.loadtxt('/Users/Hrihaan/Desktop/Code/A_B_5.txt')
time=data[:,1]
V=data[:,3]
plt.plot(time,V)

【问题讨论】:

  • 贴出你使用的代码。
  • 我做到了,我只是想从 2 个不同的列中绘制@SamCraig

标签: python numpy multiple-columns


【解决方案1】:

假设您有一个名为“A_B_5.txt”的文件。 内容是:

3044 1995 9.0 3.8 3044 1995 9.0 3.8 
3044 1995 9.0 3.8 3044 1995 9.0 3.8 
3044 1995 9.0 3.8 3044 1995 9.0 3.8 
3044 1995 9.0 3.8
3044 1995 9.0 3.8
3044 1995 9.0 3.8

你可以从pandas使用read_table

import pandas as pd
data= pd.read_table("A_B_5.txt", sep="\s+", header=None).values

你会得到:

array([[ 3044. ,  1995. , 9. , 3.8,  3044. ,  1995. , 9. , 3.8],
   [ 3044. ,  1995. , 9. , 3.8,  3044. ,  1995. , 9. , 3.8],
   [ 3044. ,  1995. , 9. , 3.8,  3044. ,  1995. , 9. , 3.8],
   [ 3044. ,  1995. , 9. , 3.8, nan, nan, nan, nan],
   [ 3044. ,  1995. , 9. , 3.8, nan, nan, nan, nan],
   [ 3044. ,  1995. , 9. , 3.8, nan, nan, nan, nan]])

======

1,2,... 10 中为i 读取文件列表A_B_i.txt

data =[pd.read_table("A_B_"+i+".txt", sep="\s+", header=None).values 
for i in range(1,11)]

并访问每个数据框,如data[0]data[1] 等。

【讨论】:

  • 它不起作用,说文件不存在但我检查了,文件在那个文件夹中。
  • @Hrihaan 你安装了熊猫吗?或者尝试在与数据相同的目录中运行代码。
  • 是的 Huang,我用 Anaconda,所以有 pandas,你能建议我一个用 nan 替换所有空格的方法吗,我已经尝试了很多东西,但都没有运气。
  • Huang,它成功了,请您建议一些方法,我可以使用循环对多个 txt 文件执行这些操作并同时保存它们吗?
猜你喜欢
  • 2013-05-31
  • 2022-06-30
  • 2016-09-18
  • 2011-03-25
  • 1970-01-01
  • 2015-01-01
  • 2011-12-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多