wuhook 发表于 2021-3-24 16:12:50

如何便利数组并保证筛选结果

例如:
数组x = []
如何便利第一列和第二列包含2的筛选结果有几条,如果我还要多条筛选又要筛选第一列第二列为2的结果和第4第5列筛选3的结果有几条呢?

笨鸟学飞 发表于 2021-3-24 16:34:40

本帖最后由 笨鸟学飞 于 2021-3-24 16:37 编辑

为何不考虑下写出EXCEL文件利用EXCEL的筛选?
https://www.jianshu.com/p/0a45dffc265f

或者数据库

wuhook 发表于 2021-3-24 17:30:07

笨鸟学飞 发表于 2021-3-24 16:34
为何不考虑下写出EXCEL文件利用EXCEL的筛选?
https://www.jianshu.com/p/0a45dffc265f



我想用PYTHON写{:10_243:}

Daniel_Zhang 发表于 2021-3-24 17:57:26

x = [, ,
   , , ]
find = input('输入需要查询的列,以空格分隔。').split(' ')
num = int(input('请输入查询的值'))
for each in x:
    flag = 0
    for every in find:
      if each == num:
            flag = 1
            break
    if flag == 1:
      print(each)

这个是某几列包含指定数字的

比如说列1和2,含有2的
会返回 列1 或 列 2 中,至少有一个是2的列表

如果是多个查询,比方说有列1列2 有 2 并且 列3列4有5的
自己修改一下输入的地方,把查询的列做成二维列表

然后依次遍历内容,去挨个匹配

每个原数据列表去匹配你的要求,匹配到了,count += 1
没匹配到,直接break跳出
看最后count 的数值是否和你查询限定要求的个数是否相同

相同则输出带有数据的列表,不同则访问下一个带有数据的列表

阿奇_o 发表于 2021-3-24 23:11:14


x = [,
   ,
   ,
   ,
   ]

# 按行统计
# print(x.count(1)) # 统计 某行 某个值所出现的次数(按行统计)
def count_in_row(data, which_row=1, value=0):
    return data.count(value)

print(count_in_row(x, 1, 1)) # 第一行中 值为1的 出现了多少次

# 按列统计
def count_in_col(data, which_col=1, value=0):
    col = []
    for row in data:
      # print(row) # 第一列的
      # col.append(row)
      col.append(row) # 第几列的

    return col.count(value)# 统计该列内的某个值 所出现的次数(按列统计)
    # print(col.count(1))
   
print(count_in_col(x, 2, 1)) # 第二列中 值为1的 出现了多少次

阿奇_o 发表于 2021-3-24 23:41:49

补充:或者用pandas模块(刚好我复习一下,^_)

import pandas as pd
x = [,
   ,
   ,
   ,
   ]
df = pd.DataFrame(x)
print(df)

print(list(df.iloc).count(1)) # 第一行中 值为1的 出现了多少次

print(list(df).count(1)) # 第二列中 值为1的 出现了多少次

.

wuhook 发表于 2021-3-25 18:15:20

阿奇_o 发表于 2021-3-24 23:11


请问我如果筛选第一行2,第一行1的话怎么实现啊?头都大了,基本功不扎实后面停更了又没学

wuhook 发表于 2021-3-25 19:52:45

Daniel_Zhang 发表于 2021-3-24 17:57
这个是某几列包含指定数字的

比如说列1和2,含有2的


谢谢哈
页: [1]
查看完整版本: 如何便利数组并保证筛选结果