对应大的csv文件,要查看特定两列之间的对应关系似乎并没有可以直接调用的函数(可能自己了解的很有限)。研究了下,结合groupby函数和nunique方法可以完成。
如下:
import pandas as pd
# 创建一个DataFrame对象
df = pd.DataFrame({
'id': ['A', 'A', 'B', 'B', 'B','C','C','C'],
'num': ['X', 'Y', 'X', 'Y', 'Z','Z','Z','Z'],
'sub_id': [1, 2, 3, 4, 5,7,8,9]
})
df
id num sub_id
0 A X 1
1 A Y 2
2 B X 3
3 B Y 4
4 B Z 5
5 C Z 6
6 C Z 7
7 C Z 8
# 对DataFrame对象进行分组
grouped = df.groupby(['id', 'num']).size()
# 将groupby对象转换为DataFrame对象
df_grouped = grouped.reset_index(name='count')
# 打印DataFrame对象
df_grouped
id num count
0 A X 1
1 A Y 1
2 B X 1
3 B Y 1
4 B Z 1
5 C Z 3
print(df_grouped.shape)
print(df_grouped['id'].nunique())
print(df_grouped['num'].nunique())
(6,3)
3
3
最后两列的nunique都比df_grouped的列数要少的话则两列之间是多对多关系,某列的nunique和df_grouped的列数一致而另一列要少的话,少的那列是有一对多的。