我有一个csv文件,我需要在一列中打印重复的值"hash"。所以我用pandas做了这个,但我不确定它打印的是什么,它似乎打印了一整行我不需要的副本,我只需要复制那一列的vault;hash"
我写的脚本:
import pandas as pd
df = pd.read_csv("combined_values.csv")
dups = df[df.duplicated("hash")]
print(dups)
我也试过这个,但它似乎打印了所有的"hash"列
import pandas as pd
df = pd.read_csv("combined_values.csv")
dups = df["hash"].duplicated
print(dups)
我们可以尝试用Series.duplicated
创建一个布尔索引,然后使用loc
从复制hash
的DataFrame中选择,而只是hash
列:
s = df.loc[df['hash'].duplicated(), 'hash']
如果需要所有副本,可以设置keep=False
:
s = df.loc[df['hash'].duplicated(keep=False), 'hash']
使用一些示例数据:
import pandas as pd
df = pd.DataFrame({
'a': [1, 2, 3, 4],
'b': [5, 6, 7, 8],
'hash': [4, 5, 4, 6]
})
s = df.loc[df['hash'].duplicated(), 'hash']
s
:
2 4
Name: hash, dtype: int64
或者保留所有重复项:
s = df.loc[df['hash'].duplicated(keep=False), 'hash']
s
:
0 4
2 4
Name: hash, dtype: int64