无法使用熊猫正确读取文件夹文件

时间:2018-11-06 19:10:14

标签: python pandas tensorflow

我正在尝试使用张量流实现简单的功能DNN。我需要遍历目录中的每个文件夹,并且代码将读取特定文件夹中包含的每个csv文件。我在A_Device_Motion目录中有多个文件夹,名称分别为“ dws_1”,“ dws_2”,“ jog_9”等。每个文件夹在csv文件中包含24个主题活动的数据。我正在尝试遍历文件夹数据,并在每次迭代中为Activity变量指定一个特定的名称。但是我面临的问题是我的代码无法完全读取文件夹名称并给我keyError。我的文件夹结构看起来像这样Here 这是我的回溯

Traceback (most recent call last):
File "C:\Users\TechProBox\Desktop\python.py", line 21, in <module>
df['Activity'] = Activety_Types[j[49:52]]
KeyError: 'ws_'

我的Python代码

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import sklearn
from glob import glob
import os
import itertools
import tensorflow as tf
print(os.listdir("C:/Users/TechProBox/Desktop/A_DeviceMotion_data"))
Activety_Types = {'dws':1,'jog':2,'sit':3,'std':4,'ups':5,'wlk':6}        
listDict = list(Activety_Types.keys())
Folders = glob('C:/Users/TechProBox/Desktop/A_DeviceMotion_data/*_*')
Folders = [s for s in Folders if "csv" not in s]
Df_all_list = []
Exp = 0
Segment_Size = 400
for j  in Folders:
  Csv = glob(j + '/*' )
  for i in Csv:
    df = pd.read_csv(i)
    df['Activity'] = Activety_Types[j[49:52]]
    df['Sub_Num'] = i[len(j)+5:-4]
    df['Exp_num'] = 1
    ExpNum = np.zeros((df.shape[0])) 
    for i in range(0,df.shape[0]-Segment_Size,Segment_Size):
        ExpNum[range(i,i+Segment_Size)] = i/Segment_Size +Exp*100 
    df['Exp_num'] = ExpNum
    Df_all_list.append(df)
    Exp += 1        

Df_all = pd.concat(Df_all_list,axis=0)  
Df_all.head()
plt.plot([1,2,3])
for i in range(6):
D = Df_all[Df_all['Activity']==i+1]
plt.subplot(3,2,i+1)
plt.plot(D['userAcceleration.z'][:200])
plt.title(listDict[i])
plt.ylim([-1, 1])

plt.tight_layout()

我没有在此处粘贴整个代码,但我认为这段代码足以理解。我在此行df['Activity'] = Activety_Types[j[49:52]]上遇到错误 PS:代码不是我的,我是从kaggle那里拿来的。

1 个答案:

答案 0 :(得分:0)

显然,我给需要添加的文件夹名称错误,代码中也存在其他一些小错误。我必须给出每个文件夹的确切名称才能运行该程序,它在这里起作用的是正确的代码

name['en']