所以我有一个表,它是这样的数据
theta phi x y
0 0 1 2
0 1 2 3
--------------------
90 360 4 5
theta值从0到90,每个thetaφ从0到360,但是表中缺少一些φ,我必须填充这些值。我试着用熊猫来做这样的工作,
import pandas as pd
cols=['theta','phi','x','y']
data = pd.read_csv('data.dat', sep=" |\t", header=None,names=cols,engine='python')
def fill_up(i):
df=data[data['theta']==i]
df.set_index('phi',inplace=True)
df= df.reindex(range(0,361)).reset_index()
df=df[cols]
df.interpolate(inplace=True)
return df
df=pd.concat([fill_up(i) for i in xrange(0,91)])
df.to_csv("new.txt",sep=' ', index=False, header=False)
如您所见,我为每个theta值创建了一个单独的数据框架,并最终将它们连接在一起。有什么方法可以在不创建不同的数据帧或更有效地实现这一点的情况下实现这一点吗?另外,我是否应该注意任何内存溢出,因为数据文件可以是几个mb?
https://stackoverflow.com/questions/51459489
复制相似问题