Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 尝试获取多个excel电子表格,提取特定数据,将它们全部添加到一个数据框,并将其保存为csv文件_Python_Excel - Fatal编程技术网

Python 尝试获取多个excel电子表格,提取特定数据,将它们全部添加到一个数据框,并将其保存为csv文件

Python 尝试获取多个excel电子表格,提取特定数据,将它们全部添加到一个数据框,并将其保存为csv文件,python,excel,Python,Excel,非常新,所以请对我放松:) 尝试获取多个excel电子表格,从特定单元格提取特定数据,将它们全部添加到一个数据框,并将其保存为csv文件 csv输出仅包含上一个excel文件中的数据。请你帮忙好吗 import pandas as pd import os from pathlib import Path ip = "//NETWORKLOCATION/In" op = "//NETWORKLOCATION/Out" file_exist = False dir_list =

非常新,所以请对我放松:)

尝试获取多个excel电子表格,从特定单元格提取特定数据,将它们全部添加到一个数据框,并将其保存为csv文件

csv输出仅包含上一个excel文件中的数据。请你帮忙好吗

 import pandas as pd
 import os
 from pathlib import Path

 ip = "//NETWORKLOCATION/In"
 op = "//NETWORKLOCATION/Out"

 file_exist = False
 dir_list = os.listdir(ip)
 print(dir_list)

 for xlfile in dir_list:
     if xlfile.endswith('.xlsx') or xlfile.endswith('.xls'):
         file_exist = True
         str_file = os.path.join(ip, xlfile)
         df1 = pd.read_excel(str_file)

         columns1 = {*VARIOUSDATA -* 
                     }

         #creates an empty dataframe for the data to all sequentially be added into
         df1a = pd.DataFrame([])

         #appends the array to the new dataframe df1a
         df1a = df1a.append(pd.DataFrame(columns1, columns = ['*VARIOUS COLUMNS*]))

         if not file_exist:
                 print('cannot find any valid excel file in the folder ' + ip)

                 print(str_file)

 df1a.to_csv('//NETWORKLOCATION/Out/Test.csv')
 print(df1a)

我想你应该说:

#creates an empty dataframe for the data to all sequentially be added into
df1a = pd.DataFrame([])
在目录列表中的xlfile的
之前:
循环不在循环内。
否则,
df1a
会在每次文件迭代时重新创建空文件。

我认为您应该放:

#creates an empty dataframe for the data to all sequentially be added into
df1a = pd.DataFrame([])
在目录列表中的xlfile的
之前:
循环不在循环内。
否则,
df1a
会在每次文件迭代时重新创建空文件。

我认为您应该放:

#creates an empty dataframe for the data to all sequentially be added into
df1a = pd.DataFrame([])
在目录列表中的xlfile的
之前:
循环不在循环内。 否则,
df1a
会在每次文件迭代时重新创建空文件

csv输出仅包含上一个excel文件中的数据

for循环
内创建
df1a
数据帧
。每次读取新的
xlfile
时,都会创建一个新的空
DataFrame

必须将
df1a=pd.DataFrame([])
放在循环之前脚本的第9行

csv输出仅包含上一个excel文件中的数据

for循环
内创建
df1a
数据帧
。每次读取新的
xlfile
时,都会创建一个新的空
DataFrame

必须将
df1a=pd.DataFrame([])
放在循环之前脚本的第9行

csv输出仅包含上一个excel文件中的数据

for循环
内创建
df1a
数据帧
。每次读取新的
xlfile
时,都会创建一个新的空
DataFrame


必须将
df1a=pd.DataFrame([])
放在循环之前脚本的第9行

有几件事。首先,您永远不会遇到:

如果文件不存在:
打印('在文件夹'+ip'中找不到任何有效的excel文件)
打印(str_文件)
正如所写的那样,因为它是一个嵌套的if语句,所以file_exists在到达它之前总是设置为true

  • 您正在for循环中创建df1a。所以你总是把它设回空
  • 为什么要导入路径,然后使用os.Path和os.listdir? 为什么不直接使用Path(ip).glob('.xls')
  • 这看起来像:

    将熊猫作为pd导入
    导入操作系统
    从pathlib导入路径
    ip=“//网络位置/In”
    op=“//网络位置/输出”
    #为要按顺序添加到的所有数据创建空数据帧
    df1a=pd.DataFrame([])
    对于路径(ip).glob('*.xls*')中的xlfile:
    df1=pd.read\u excel(xlfile)
    columns1={“VARIOUSDATA”}
    #将数组追加到新的数据帧df1a
    df1a=df1a.append(pd.DataFrame(columns1,columns=['variable_columns']))
    如果df1a.empty:
    打印('在文件夹'+ip'中找不到任何有效的excel文件)
    打印(str_文件)
    其他:
    df1a.to_csv(op+'/Test.csv')
    打印(df1a)
    
    有几件事。首先,您永远不会遇到:

    如果文件不存在:
    打印('在文件夹'+ip'中找不到任何有效的excel文件)
    打印(str_文件)
    
    正如所写的那样,因为它是一个嵌套的if语句,所以file_exists在到达它之前总是设置为true

  • 您正在for循环中创建df1a。所以你总是把它设回空
  • 为什么要导入路径,然后使用os.Path和os.listdir? 为什么不直接使用Path(ip).glob('.xls')
  • 这看起来像:

    将熊猫作为pd导入
    导入操作系统
    从pathlib导入路径
    ip=“//网络位置/In”
    op=“//网络位置/输出”
    #为要按顺序添加到的所有数据创建空数据帧
    df1a=pd.DataFrame([])
    对于路径(ip).glob('*.xls*')中的xlfile:
    df1=pd.read\u excel(xlfile)
    columns1={“VARIOUSDATA”}
    #将数组追加到新的数据帧df1a
    df1a=df1a.append(pd.DataFrame(columns1,columns=['variable_columns']))
    如果df1a.empty:
    打印('在文件夹'+ip'中找不到任何有效的excel文件)
    打印(str_文件)
    其他:
    df1a.to_csv(op+'/Test.csv')
    打印(df1a)
    
    有几件事。首先,您永远不会遇到:

    如果文件不存在:
    打印('在文件夹'+ip'中找不到任何有效的excel文件)
    打印(str_文件)
    
    正如所写的那样,因为它是一个嵌套的if语句,所以file_exists在到达它之前总是设置为true

  • 您正在for循环中创建df1a。所以你总是把它设回空
  • 为什么要导入路径,然后使用os.Path和os.listdir? 为什么不直接使用Path(ip).glob('.xls')
  • 这看起来像:

    将熊猫作为pd导入
    导入操作系统
    从pathlib导入路径
    ip=“//网络位置/In”
    op=“//网络位置/输出”
    #为要按顺序添加到的所有数据创建空数据帧
    df1a=pd.DataFrame([])
    对于路径(ip).glob('*.xls*')中的xlfile:
    df1=pd.read\u excel(xlfile)
    columns1={“VARIOUSDATA”}
    #将数组追加到新的数据帧df1a
    df1a=df1a.append(pd.DataFrame(columns1,columns=['variable_columns']))
    如果df1a.empty:
    打印('在文件夹'+ip'中找不到任何有效的excel文件)
    打印(str_文件)
    其他:
    df1a.to_csv(op+'/Test.csv')
    打印(df1a)
    
    像这样的东西应该适合你

    import os
    import pandas as pd
    
    import glob
    glob.glob("C:\\your_path\\*.xlsx")
    
    all_data = pd.DataFrame()
    for f in glob.glob("C:\\your_path\\*.xlsx"):
        df = pd.read_excel(f)
        all_data = all_data.append(df,ignore_index=True)
    
    type(all_data)
    
    查看此链接


    像这样的东西应该适合你

    import os
    import pandas as pd
    
    import glob
    glob.glob("C:\\your_path\\*.xlsx")
    
    all_data = pd.DataFrame()
    for f in glob.glob("C:\\your_path\\*.xlsx"):
        df = pd.read_excel(f)
        all_data = all_data.append(df,ignore_index=True)
    
    type(all_data)
    
    查看此链接


    像这样的东西应该适合你

    import os
    import pandas as pd
    
    import glob
    glob.glob("C:\\your_path\\*.xlsx")
    
    all_data = pd.DataFrame()
    for f in glob.glob("C:\\your_path\\*.xlsx"):
        df = pd.read_excel(f)
        all_data = all_data.append(df,ignore_index=True)
    
    type(all_data)
    
    查看此链接


    非常感谢您。这在2秒内修复了它。我花了几个小时试图找出我做错了什么。非常感谢。这在2秒内修复了它。我花了好几个小时想弄清楚我想要什么