python csv模块中是否有一个内置方法来枚举特定列的所有可能值?
我有一个csv文件,其中有许多列。现在我的要求是找到该特定列中存在的所有可能值 python中是否有任何内置函数可以帮助我获取这些值。我会使用一个函数来实现这一点 假设csv文件是这样的,我们只需要第二列中的唯一值python csv模块中是否有一个内置方法来枚举特定列的所有可能值?,csv,python-3.x,Csv,Python 3.x,我有一个csv文件,其中有许多列。现在我的要求是找到该特定列中存在的所有可能值 python中是否有任何内置函数可以帮助我获取这些值。我会使用一个函数来实现这一点 假设csv文件是这样的,我们只需要第二列中的唯一值 foo,1,bar baz,2,foo red,3,blue git,3,foo 下面是实现这一点的代码。我只是打印出唯一的值来测试它是否有效 导入csv def parse_csv_文件(rawCSVFile): fileLineList=[] 将open(rawCSVFile,
foo,1,bar
baz,2,foo
red,3,blue
git,3,foo
下面是实现这一点的代码。我只是打印出唯一的值来测试它是否有效
导入csv
def parse_csv_文件(rawCSVFile):
fileLineList=[]
将open(rawCSVFile,换行符=“”)作为csvfile:
reader=csv.reader(csvfile)
对于读取器中的行:
fileLineList.append(行)
返回文件行列表
def main():
uniqueColumnValues=set()
fileLineList=parse_csv_文件('sample.csv')
对于fileLineList中的行:
uniqueColumnValues.add(第[1]行)#在此处选择第二列。
打印(唯一列值)
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
main()
一次计算所有行的唯一值的方法过于“聪明”(假设所有列的大小相同,但它无缝地忽略了空行):
它使用zip(*csvin)
进行表格旋转(将正常的一次一行输出转换为一次一列),然后使用set
对每列进行唯一化,并(对于尼斯输出)对其进行排序。您可以告诉我们
示例文件many_cols.csv
:
col1,col2,col3
1,10,100
1,20,100
2,10,100
3,30,100
查找每列的唯一值:
>>> import pandas as pd
>>> df = pd.read_csv('many_cols.csv')
>>> df.col1.drop_duplicates().tolist()
[1, 2, 3]
>>> df['col2'].drop_duplicates().tolist()
[10, 20, 30]
>>> df['col3'].drop_duplicates().tolist()
[100]
对于所有列:
import pandas as pd
df = pd.read_csv('many_cols.csv')
for col in df.columns:
print(col, df[col].drop_duplicates().tolist())
输出:
col1 [1, 2, 3]
col2 [10, 20, 30]
col3 [100]
问题不清楚:您有许多列,您想找到“that”列中存在的所有可能值吗?哪个栏目?你有many@Ramast我已经修改过了。@Apoorvasahay下面的答案是否为您提供了解决方案?如果是,请选择一个作为答案。
col1 [1, 2, 3]
col2 [10, 20, 30]
col3 [100]