现有A行*B列的表(A和B的值未知),用pandas写一段程序循环每一列,将各列中含字符'!'数据所在行的行号和列名,输出到txt文件中
时间: 2023-06-04 11:02:48 浏览: 96
好的,谢谢您的提问。以下是代码:
import pandas as pd
# 读入表格,以逗号为分隔符(根据实际情况修改)
df = pd.read_csv("your_csv_file.csv", sep=",")
# 获取行数和列数
num_rows, num_cols = df.shape
# 存储结果的列表
result = []
# 循环每一列
for col in df.columns:
# 检查该列是否有'!'字符
if '!' in df[col].values:
# 遍历该列查找'!'字符
for i in range(num_rows):
if '!' in df.iloc[i][col]:
# 将找到的行号和列名加入结果列表
result.append((i, col))
# 输出结果到txt文件中
with open("result.txt", "w") as f:
for row, col in result:
f.write("行号:{},列名:{}\n".format(row, col))
相关问题
现有A行*B列的表(A和B的值未知),写一段程序循环每一列,将各列中含字符'!'数据所在行,输出到txt文件中
好的,关于您的问题,我可以给您提供一个大致的思路:
1. 首先,您需要确定A和B的值,但是我无法为您提供这个信息,因此您需要自己确认。
2. 接下来,您可以先读取这个表中的数据,使用Python的pandas库可以很方便地实现。
3. 然后,您可以使用for循环遍历每一列,利用pandas的iloc方法找出每一列中含有字符'!'的数据所在行,将其输出到一个txt文件中即可。
下面是一个伪代码的示例:
```
import pandas as pd
# 读取表格数据
data = pd.read_excel('your_file_path')
# 确定行列数
A = data.shape[0]
B = data.shape[1]
# 遍历每一列
for i in range(B):
# 找到含有'!'的行
rows = data.iloc[:,i][data.iloc[:,i].str.contains('!')].index.tolist()
# 将行号输出到txt文件中
with open('result.txt', 'a') as f:
f.write('列 %d 中含有 \'!\' 的行号为:%s\n' % (i+1, ', '.join(map(str, rows))))
```
请注意,这仅仅是一个伪代码示例,其中的具体实现可能需要根据您的实际情况进行修改。
阅读全文