Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 计算数据帧中特定列中的特定值?_Python_Pandas - Fatal编程技术网

Python 计算数据帧中特定列中的特定值?

Python 计算数据帧中特定列中的特定值?,python,pandas,Python,Pandas,我有一个数据框“我的数据”,如下所示: var1, var2, var3 123, 234, 678 443, 567, fd 324, 678, 789 12, 102, fd 我想提取/计算或计算“Var3”最后一列中出现“fd”的百分比,因此在本例中,输出put应为: 产出:2 或 输出:0.50您可以使用.shape计算满足条件的行数,而无需导入任何其他内容 import pandas as pd d = {'var1': [123, 443, 324, 12],

我有一个数据框“我的数据”,如下所示:

var1, var2, var3 
123,   234, 678
443,   567, fd
324,   678, 789
12,    102, fd
我想提取/计算或计算“Var3”最后一列中出现“fd”的百分比,因此在本例中,输出put应为: 产出:2 或
输出:0.50

您可以使用
.shape
计算满足条件的行数,而无需导入任何其他内容

import pandas as pd
d = {'var1': [123, 443, 324, 12],
     'var2': [234, 567, 678, 102],
     'var3': [678, "fd", 789, "fd"]}
df = pd.DataFrame(data=d)
df[df['var3']=="fd"].shape[0]/df.shape[0]

这将为您提供
0.5
。如果只需要计数,请使用
df[df['var3']==“fd”]。shape[0]

以下是一种简单的方法:

拉取绝对出现次数:

My_data['var3'].value_counts(normalize=False).loc['fd']
2
提取记录的百分比:

My_data['var3'].value_counts(normalize=True).loc['fd']
0.5
这种方法更快/更有效:

%timeit df.var3.value_counts(normalize=True).loc['fd']
1000 loops, best of 3: 597 µs per loop

%timeit df[df['var3']=="fd"].shape[0]/df.shape[0]
The slowest run took 16.34 times longer than the fastest. This could mean that an intermediate result is being cached.
1000 loops, best of 3: 710 µs per loop

谢谢,它给了我和我想要的完全一样的东西。编辑-使用我的默认
df
变量。将dataframe重命名为
My_data
。是的,这一个也可以使用,但有一点变化:My_data['var3']。value_计数(normalize=True)。loc['fd']。谢谢。
My_data.var3
My_data['var3']
完全可以互换。