将带有 if 语句的 for 循环的结果附加到 Python 中的 Pandas Dataframe
Appending the results of for loop with if statement to Pandas Dataframe in Python
我正在 Python 中制作一个脚本,用于在选定文件夹中的一堆 .txt 文件中搜索选定术语(word/couple 单词、句子),并打印出名称包含所选术语的 .txt 文件。目前使用 os 模块工作得很好:
import os
dirname = '/Users/User/Documents/test/reports'
search_terms = ['Pressure']
search_terms = [x.lower() for x in search_terms]
for f in os.listdir(dirname):
with open(os.path.join(dirname,f), "r", encoding="latin-1") as infile:
text = infile.read()
if all(term in text for term in search_terms):
print (f)
输出将是这样的:
3003.txt
3002.txt
3006.txt
3008.txt
我想将这些结果作为字符串列附加到 Pandas Dataframe 中,但是当我尝试这样做时,我收到了错误消息:
lst = []
if all(term in text for term in search_terms):
lst.append(f)
df = pd.DataFrame(lst)
print (f)
如何做到这一点?
在下面的 code
中,新行由“*
”表示。
问题代码
import os
import pandas as pd # new line * * *
import numpy as np # new line * * *
dirname = '/Users/User/Documents/test/reports'
search_terms = ['Pressure']
search_terms = [x.lower() for x in search_terms]
# Create empty dataframe to store file names # new line * * *
df = pd.DataFrame() # new line * * *
for f in os.listdir(dirname):
with open(os.path.join(dirname,f), "r", encoding="latin-1") as infile:
text = infile.read()
if all(term in text for term in search_terms):
print (f)
# Store value 'f' inside a dataframe column
df = df.append(pd.DataFrame({'file_names': ['new_file.txt']}), ignore_index=True)
示例代码
f = ['3003.txt', '3002.txt', '3006.txt', '3008.txt']
df = pd.DataFrame({'file_names': f})
df = df.append(pd.DataFrame({'file_names': ['new_file.txt']}), ignore_index=True)
df
我正在 Python 中制作一个脚本,用于在选定文件夹中的一堆 .txt 文件中搜索选定术语(word/couple 单词、句子),并打印出名称包含所选术语的 .txt 文件。目前使用 os 模块工作得很好:
import os
dirname = '/Users/User/Documents/test/reports'
search_terms = ['Pressure']
search_terms = [x.lower() for x in search_terms]
for f in os.listdir(dirname):
with open(os.path.join(dirname,f), "r", encoding="latin-1") as infile:
text = infile.read()
if all(term in text for term in search_terms):
print (f)
输出将是这样的:
3003.txt
3002.txt
3006.txt
3008.txt
我想将这些结果作为字符串列附加到 Pandas Dataframe 中,但是当我尝试这样做时,我收到了错误消息:
lst = []
if all(term in text for term in search_terms):
lst.append(f)
df = pd.DataFrame(lst)
print (f)
如何做到这一点?
在下面的 code
中,新行由“*
”表示。
问题代码
import os
import pandas as pd # new line * * *
import numpy as np # new line * * *
dirname = '/Users/User/Documents/test/reports'
search_terms = ['Pressure']
search_terms = [x.lower() for x in search_terms]
# Create empty dataframe to store file names # new line * * *
df = pd.DataFrame() # new line * * *
for f in os.listdir(dirname):
with open(os.path.join(dirname,f), "r", encoding="latin-1") as infile:
text = infile.read()
if all(term in text for term in search_terms):
print (f)
# Store value 'f' inside a dataframe column
df = df.append(pd.DataFrame({'file_names': ['new_file.txt']}), ignore_index=True)
示例代码
f = ['3003.txt', '3002.txt', '3006.txt', '3008.txt']
df = pd.DataFrame({'file_names': f})
df = df.append(pd.DataFrame({'file_names': ['new_file.txt']}), ignore_index=True)
df