我想找到使用pandas在数据中显示的每个街道名称+交叉名称的配对频率。例如,这是一个数据样本:
Street Name Cross Streets
Massachusetts Ave Rindge Ave
Massachusetts Ave NaN
Franklin Street Sidney Street
Massachusetts Ave Rindge Ave
如何计算每个街道名称和交叉名称配对的频率,如何找到没有配对的街道数量(例如带有NaN的街道)?
答案 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