我已经水平合并了10个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)
答案 0 :(得分: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
您可以使用read_table
中的pandas
:
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]])
==
在A_B_i.txt
中阅读i
的{{1}}个文件列表:
1,2,... 10
并访问每个数据框,如data =[pd.read_table("A_B_"+i+".txt", sep="\s+", header=None).values
for i in range(1,11)]
,data[0]
等。