我已经从一个文件夹中导入了几千个txt文件到pandas dataframe
。是否有任何方法可以创建一列,从其中导入的txt文件的文件名中添加子字符串?这是通过一个唯一的名称来标识数据帧中的每个文本文件。
文本文件命名为1001示例。txt,例如。txt,1003示例。txt
和son打开。我想要这样的东西:
filename text
1001 this is an example text
1002 this is another example text
1003 this is the last example text
....
我用来导入数据的代码如下。但是,我不知道如何通过文件名的子字符串创建列。任何帮助都将不胜感激。谢谢。
import glob
import os
import pandas as pd
file_list = glob.glob(os.path.join(os.getcwd(), "K:\\text_all", "*.txt"))
corpus = []
for file_path in file_list:
with open(file_path, encoding="latin-1") as f_input:
corpus.append(f_input.read())
df = pd.DataFrame({'text':corpus})
有一句话:
df = pd.concat([pd.read_csv(f, encoding='latin-1').
assign(Filename=os.path.basename(f)) for f in glob.glob('K:\\text_all*.txt')])
df['Filename'] = df['Filename'].str.extract('(\d+)').astype(int)
这应该行得通。它从文件名中提取数字。
import glob
import os
import pandas as pd
file_list = glob.glob(os.path.join(os.getcwd(), "K:\\text_all", "*.txt"))
corpus = []
files = []
for file_path in file_list:
with open(file_path, encoding="latin-1") as f_input:
corpus.append(f_input.read())
files.append(''.join([n for n in os.path.basename(file_path) if n.isdigit()]))
df = pd.DataFrame({'file':files, 'text':corpus})
如何将数据添加到xml文件中,并在其上附加其他数据(如果存在)? 我尝试了以下代码,但这段代码只创建了一个值节点,没有附加到文件中。它总是删除现有的,然后添加新的。
问题内容: 我尝试导入.txt文件以在文本框中显示文本。 我的代码: 但我在控制台中看到:/static/media/sample.f2e86101.txt 这是怎么了? 问题答案: 我已经解决了我的问题。
我尝试从Eclipse切换到IntellijIDEA。我有一个使用Git的项目,我想快速向.gitignore文件添加文件。在Eclipse中,我可以右键单击一个文件/目录,然后选择'Add to.gitignore'。 在IntelliJ IDEA中是否有类似的内容或者我必须手动编辑文件?
问题内容: 我 是否 必须删除文件名中的所有空格才能将其导入,或者是否可以通过某种方式知道是否存在空格? 问题答案: 您应该从文件名中删除空格。由于文件名被用作导入模块的标识符(即将被导入为),而Python标识符不能有空格,因此该语句不支持此操作。 如果由于某些原因 确实 需要执行此操作,可以使用以下函数: 这将导入为。这与该语句的行为略有不同,应避免使用它。
问题内容: 如何将输出重定向到txt文件(在Windows平台上)? 问题答案: 如果是我,我将使用上面的David Heffernan的方法将变量写入文本文件(因为其他方法要求用户使用命令提示符)。
问题内容: 我是编程(和Python)的新手,而问题/响应系统使我得以解决所有问题。我没有找到任何直接解决我当前问题的帖子,但是不得不承认我并不真正知道出什么问题。让我解释。 我正在尝试使用PyInstaller制作脚本的可执行文件。使用简单的Python脚本(使用– onefile)可以做到这一点,但是当涉及使用其他和文件的更复杂的程序时,它就不起作用。我知道我需要修改规范文件并尝试了许多替代方