如何在大熊猫数据框中找到街道及其交叉点的每个配对的频率?

时间:2016-10-07 03:46:12

标签: pandas dataframe

我想找到使用pandas在数据中显示的每个街道名称+交叉名称的配对频率。例如,这是一个数据样本:

Street Name        Cross Streets
Massachusetts Ave  Rindge Ave
Massachusetts Ave  NaN
Franklin Street    Sidney Street
Massachusetts Ave  Rindge Ave

如何计算每个街道名称和交叉名称配对的频率,如何找到没有配对的街道数量(例如带有NaN的街道)?

1 个答案:

答案 0 :(得分:1)

可能是这样的:

加载库并导入数据

In [1]: import pandas as pd

In [2]: df = pd.read_csv("test.csv", delimiter=",", na_values="NaN")    
In [3]: df
Out[3]:
        Street Name   Cross Street
0  Massachusetts Ave     Rindge Ave
1  Massachusetts Ave            NaN
2    Franklin Street  Sidney Street
3  Massachusetts Ave     Rindge Ave
  

“计算每个街道名称和交叉名称配对的频率”

...通过对街道名称和跨街道进行分组并计算每组中的数量

In [4]: df.groupby(['Street Name', 'Cross Street']).size()
Out[4]:
Street Name        Cross Street
Franklin Street    Sidney Street    1
Massachusetts Ave  Rindge Ave       2
dtype: int64
  

“查找没有配对的街道数(例如带有NaN的街道)”

...通过对街道名称进行分组并计算跨街道的NaN数量

In [5]: df.groupby("Street Name").agg(lambda x: x["Cross Street"].isnull().sum())
Out[5]:
                  Cross Street
Street Name
Franklin Street               0
Massachusetts Ave             1