【发布时间】:2020-02-26 22:15:55
【问题描述】:
我是 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。并且能够做出这样的情节:
你能帮帮我吗?
非常感谢。
【问题讨论】:
-
“计算文件的频率”是什么意思?频率信息是否在其中一列中?
-
嗨Lepakk,我要计算两列的频率,不是一一计算
-
抱歉,我还是不明白你的频率应该是多少。但是我是否正确,您的 A 和 B 列应该是图中的 X 和 Y 坐标?然后根据 X 和 Y 数据计算 Z 值?如果您能提供更多关于您的数据实际含义的信息,也许会有所帮助。
-
是的,A 和 B 列应该是 X 和 Y 坐标。然后根据 X 和 Y 数据计算 Z 值。我想绘制类似于 matplotlib.org/mpl_toolkits/mplot3d/tutorial.html 的绘图。我不知道如何定义 Z,我想那是频率,就像一个直方图,但在 3D 上。
-
每一行的操作是否类似于 Z=(X 的某个函数) * (Y 的某个函数)?
标签: python pandas multiple-columns frequency