python - 从 read_csv 中提取文件名 - Python

标签 python string pandas

我有一个脚本,当前从 .csv 文件读取原始数据并对数据执行一些 pandas 数据分析。目前 .csv 文件是硬编码的,并且是这样读入的:

data = pd.read_csv('test.csv',sep="|", names=col)

我想改变两件事:

  1. 我想把它变成一个循环,这样它就可以遍历 .csv 文件目录,并在脚本中的每个文件下面执行 pandas 分析。

  2. 我想获取每个 .csv 文件并剥离“.csv”并将其存储在另一个列表变量中,我们称它为“new_table_list”。

我想我需要像下面这样的东西,至少对于第一点(虽然我知道这并不完全正确)。我不确定如何解决第二点

感谢任何帮助

import os 

path = '\test\test\csvfiles'
table_list = []

for filename in os.listdir(path):
    if filename.endswith('.csv'):
        table_list.append(file)
data = pd.read_csv(table_list,sep="|", names=col)

最佳答案

很多方法可以做到这一点

for filename in os.listdir(path):
    if filename.endswith('.csv'):
        table_list.append(pd.read_csv(filename,sep="|"))
        new_table_list.append(filename.split(".")[0])

还有一个

for filename in os.listdir(path):
    if filename.endswith('.csv'):
        table_list.append(pd.read_csv(filename,sep="|"))
        new_table_list.append(filename[:-4])

还有更多

正如@barmar 指出的那样,最好将路径也附加到 table_list 以避免与文件和脚本的路径和位置相关的任何问题。

关于python - 从 read_csv 中提取文件名 - Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50337843/

相关文章:

python - tensorflow/serving - reshape 的输入是一个具有 100 个值的张量,但请求的形状有 10000 个

python - 从 Pandas Dataframe 中删除了行 - 现在索引搞砸了吗?

python:将 float 转换为字符串时,在点后强制加两个零

java - 删除字符串中除字母以外的所有字符

java - 将 List<T> 转换为 List<String> 类型

python - 计算时间序列中首次二进制指标的数量

python - 获取 pandas 数据框中一列中 n 个单词的前 n/2 个

python - AWS pandas 安装出现错误 : virtual memory exhausted: Cannot allocate memory

python - 如何在 python 中生成 8 个不同的随机数?

python - 如何在不丢失选择的情况下在 Tkinter 的列表框中向上或向下移动项目?