我是python的新手。我想计算两列文件的频率。此文件包含500万行或更多。例如
20.735895 0.969697
20.504506 0.969697
20.500563 0.969697
20.901916 0.969697
21.295618 0.969697
21.176620 0.969697
我的脚本是这个,但是不起作用
import sys
import pandas as pd
import numpy as np
array_txt = np.loadtxt("file.txt",usecols=(0, 1))
x = array_txt[:,0]
y = array_txt[:,1]
df = pd.DataFrame({'A':[x], 'B':[y]})
print (x)
print (y)
print (df)
count = df.groupby(['A', 'B']).size()
print(count)
我的输出应该是:
20.735895 0.969697 0.65
20.504506 0.969697 0.89
20.500563 0.969697 0.25
第三列的结果将是频率。我想得到这个结果,让变量“ Z”在matplotlib中进行3D绘图,因为我不知道如何考虑x和y为一组2D值计算Z。并能够进行这种绘图:
您能帮我吗?
非常感谢。
我想,这可以通过df.apply解决
df = pd.DataFrame(np.random.randn(1000,2),columns=['A','B'])
df.A=df.A+4
df.B=df.B+1
df['Z']=df.apply(lambda row: np.sqrt(row.A)+row.B**2,axis=1)
我生成一些随机数据,然后将另一列应用于数据框。使用lambda函数,我可以处理每一行中其他列的元素,并为每一行计算Z的值。然后,您可以按照所需的方式绘制数据,似乎您已经有了清晰的想象力,应该是什么样子。希望能解决您的问题。