如何显示熊猫read_csv()函数读取的csv文件名?

时间:2020-04-20 07:22:23

标签: python pandas

我想显示由pandas.read_csv()函数读取的csv文件名。我尝试了以下代码,但无法显示csv文件名。

import pandas as pd 
df=pd.read_csv("abc.csv") 
print(df.info())

我要显示“ abc”。指导我的情况。预先感谢。

3 个答案:

答案 0 :(得分:1)

#include<stdio.h> #include<math.h> #include<stdlib.h> void Carry(int bit[],int pos) { int i,carray=0; for(i=0;i<=pos;i++) { bit[i]+=carray; if(bit[i]<=9) { carray=0; } else if(bit[i]>9&&i<pos) { carray=bit[i]/10; bit[i]%=10; } else if(bit[i]>9&&i>=pos) { while(bit[i]>9) { carray=bit[i]/10; bit[i]%=10; i++; bit[i]=carray; } } } } int main() { int num,pos,digit,i,j,m,n; double sum=0; int *fact; printf("input want to calculute factorial num:"); scanf("%d",&num); for(i=1;i<=num;i++) { sum+=log10(i); } digit=(int)sum+1; if(!(fact=(int *)malloc((digit+1)*sizeof(int)))) { printf("malloc failed\n"); return 0; } for(i=0;i<=digit;i++) { fact[i]=0; } fact[0]=1; for(i=2;i<=num;i++) { for(j=digit;j>=0;j--) { if(fact[j]!=0) { pos=j; break; } } for(j=0;j<=pos;j++) { fact[j]*=i; } Carry(fact,pos); } for(j=digit;j>=0;j--) { if(fact[j]!=0) { pos=j; break; } } m=0; n=0; for(i=pos;i>=0;i--) { printf("%d",fact[i]); m++; if(m%4==0) { printf(" "); } if(m==40) { printf("\n"); m=0; n++; if(n==10) { printf("\n"); n=0; } } } printf("\n\n"); return 0; } 方法接受一个pandas.read_csv()对象(实际上是任何带有File方法的类似文件的对象)。

read()类具有一个File对象,该对象具有打开的文件的名称。

我认为此代码和情况绝对没有意义,因为您已经事先知道了文件名,但是为了完整起见,请转到:

name

答案 1 :(得分:0)

使用熊猫read_csv函数时,将得到一个不包含文件名的数据框。因此,解决方案是将.csv的名称存储在变量中,然后打印出来。您可以在pandas.DataFrame Documentation

中查看有关熊猫数据框的信息
import pandas as pd 
name = "abc.csv"
df=pd.read_csv(name) 
print(name.split(".")[0])

答案 2 :(得分:0)

您可以使用类似的方法,因为read_csv不会保存文件名。

使用glob将使您能够为该文件夹中的所有CSV文件放置通配符或正则表达式以供读取。

import glob

data = {}
for filename in glob.glob("/path/of/the/csv/files/*.csv"):
    data[filename.split("/")[-1].split(".")[0]] = pd.read_csv(filename)

for key, value in data.items():
    print(key)
    print(value.info())
    print("\n\n")

filename.split("/")[-1].split('.')[0]

上一行可能看起来很复杂,但它只是将file_name分割了2次。