我为粗略的标题道歉,但我有以下情况:
2个数据帧列,其值为:
球| 1
球| 1
坚持2
坚持3
基本上,我怎么能运行某种验证检查说,Ball很好,因为它在第2列中有1个唯一值,但是粘贴是错误的,因为它有2和3不相同?我希望第1列中的每个唯一值只有1个唯一值。
答案 0 :(得分:0)
df.duplicated(subset='Ball')
这将返回一系列布尔值,表示值是否与前一行重复
https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.duplicated.html
Ball Stick
0 1 2
1 1 3
返回
0 False
1 True
dtype: bool
<强> EDITED 强>:
所以我想我知道OP在哪里
如果我用:
设置dfdf = pd.DataFrame([['1','2'],['1','2'],['1','8']], columns=['Ball','Stick'])
df返回
Ball Stick
0 1 2
1 1 2
2 1 8
然后:
for row in df:
print(row)
print(df.duplicated(subset=row, keep=False))
返回:
Ball
0 True
1 True
2 True
dtype: bool
Stick
0 True
1 True
2 False
dtype: bool
因此,任何包含False的列都将为“Bad&#39;
”答案 1 :(得分:0)
将.groupby()
与.nunique()
:
df.groupby('column_1_name')['column_2_name'].nunique()
答案 2 :(得分:0)
您可以阅读没有列名的CSV文件,并且可以获得如下值
df = pd.read_csv('data.csv',header=None)
print(df.groupby(0)[1].nunique()==1)
结果:
Ball True
Stick False