首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >python脚本,用于找出有多少列以及哪些列与第一列不同

python脚本,用于找出有多少列以及哪些列与第一列不同
EN

Stack Overflow用户
提问于 2019-02-21 04:07:16
回答 4查看 63关注 0票数 0

我有下面的测试数据: c1,c2等。表示列。

我的目标是运行一个python脚本来识别有多少列,以及哪些列的数字与第一列(即C1)不同。在本例中,C1是888,但也可以是其他值。我需要找出同一行中有多少列包含与C1不同的值。现在这是存储在csv中,我没有为此编写太多代码,因为我正在努力弄清楚如何处理它:

代码语言:javascript
复制
C1   C2  C3  C4  C5  C6  C7  C8  C9 C10 C11 C12 C13 C14 C15 C16 C17  C18     C19
888 888 888 888 888 888 888 888 888 888 888 888 888 888 888 999 999 239.66  214.75

代码

代码语言:javascript
复制
with open(r'path','r') as r:
    reader=csv.DictReader(r)
    diff=[]
    x=0
    for row in reader:
        diff.append(row)
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2019-02-21 04:25:30

只需搜索与感兴趣的列不匹配的键,并检查它们的值是否与'c1‘的值匹配。

代码语言:javascript
复制
with open("test.csv", "r") as r:
    reader = csv.DictReader(r)
    diff = []
    for row in reader:
        print(row)
        rowdiff = []
        val = row['c1']
        for key in row:
            if key != 'c1' and row[key] != val:
                rowdiff += [key]
        # Place tuple of (# differences, column keys) in diff
        diff.append((len(rowdiff), rowdiff))

    print(diff)
票数 1
EN

Stack Overflow用户

发布于 2019-02-21 04:18:47

您也可以在这里使用pandas

假设您的数据帧是df

代码语言:javascript
复制
    C1   C2   C3   C4   C5   C6   C7   C8   C9  C10  C11  C12  C13  C14  C15  C16  C17     C18     C19
0  888  888  888  888  888  888  888  888  888  888  888  888  888  888  888  999  999  239.66  214.75

mask = df.eq(df.iloc[0, 0]) # boolean mask

df[~mask].dropna(axis=1)

   C16  C17     C18     C19
0  999  999  239.66  214.75
票数 1
EN

Stack Overflow用户

发布于 2019-02-21 04:26:54

下面的代码填充一个字典,其中每个键都是一行,每个值都是哪些列与第一列不匹配。

代码语言:javascript
复制
dict_cols={}
for row in range(len(reader)):
    same_cols=[]
    for col in reader.columns[1:]:

        if reader[reader.columns[0]][row]!=reader[col][row]:
            same_cols.append(col)
    dict_cols[row]=same_cols

不过,这可能有点费解

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54794451

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档