当前位置: 首页 > 知识库问答 >
问题:

如何用pandas解析大量的txt文件,并以某种方式理解表的每个raw来自哪个文件[重复]

郭永怡
2023-03-14
YEAR   NAME  GENDER  QUANTITY
1998   Marie    F      2994  
1996   John     M      2984
1897   Molly    F       54

这是我的代码为1个文件,但我需要做同样的100多个文本文件...

import pandas as pd

df = pd.read_csv("yob1880.txt", header=None)
df["year"] = 1880 # add new column according to the file`s year
print(df)

共有1个答案

丁曦
2023-03-14

这里有两个问题:

  1. 如何从文件名中提取年份并分配给新列。
  2. 如何连接多个数据集。

对于前者,可以使用字符串切片和pd.dataframe.assign;对于后者pd.concat。假设文件名的格式为yobxxx.txt:

df = pd.concat(pd.read_csv(fn).assign(YEAR=int(fn[3:7])) for fn in filenames)
df = pd.concat((pd.read_csv(fn).assign(YEAR=int(fn[3:7)) for fn in filenames),
               ignore_index=True)
 类似资料:
  • null 我现在的代码: 此代码返回。我知道这是因为对于表行,我使用的是,默认情况下它在空格上拆分。由于有些列缺少值,因此对于第二个和htird表,表头中的元素数和表行中的元素数不匹配。我正在努力解决这个问题,因为表示缺失值的空格字符的数量对于每个表来说是不同的。 我的问题是:是否有一种方法可以解释某些列中丢失的值,以便在丢失值为null或NaN的情况下获得一个DataFrame作为输出?

  • 问题内容: 我有一个.txt文件,其中包含以下详细信息: 我想做的是解析此广告,使值以更易读的格式(如果可能)转换为数组。 谢谢 问题答案: 您可以这样轻松地做到这一点 首先,您可以使用函数打开文本文件,然后使用函数在换行符上剪切字符串。这样,您将获得一个数组,其中所有行都分开。然后使用该函数可以删除第一行,因为它是标题。 获取行之后,您可以遍历数组并将所有信息放入名为的新数组中。从零行开始,您将

  • #include <stdio.h> typedef struct { int a; int b; int c; int d; }ex_st; int main(void) { ex_st st = {1, 2, 3, 4}; printf("%d,%d,%d,%d\n", st.a, st.b,

  • 我是java新手,我在VSCODE上编码。我创建2.java文件,如下图所示: 这些是每个文件: Main.java:

  • 问题内容: 我需要在Nodejs中读取一个大的JSON文件(大约630MB),并将每个对象插入MongoDB。 但是,答案是逐行处理JSON文件,而不是逐对象处理。因此,我仍然不知道如何从该文件中获取对象并对其进行操作。 我的JSON文件中大约有100,000种此类对象。 资料格式: 干杯, 问题答案: 有一个名为“ stream-json”的不错的模块,它可以完全满足您的需求。 它可以解析远远超

  • 案例: 我在代码中找不到镶木地板文件的一些规则。有人可以解释吗? 代码: https://github.com/apache/spark/blob/master/sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/FileFormatWriter.scala https://github.com/apache/spa