【发布时间】:2020-12-03 11:25:03
【问题描述】:
我有以下数据集:
X Y Z S A
_ _ _ _ _
0 1 2 1 1
8 5 3 1 2
5 6 7 2 1
9 8 9 2 2
6 7 7 1 3
我想像这样将它们的 S 和 A 列相应地文件夹
DATA\S1\A1
DATA\S1\A2
DATA\S2\A1
我只想要我的 csv 文件中对应的 XYZ 值
我已经尝试过这段代码。文件夹的创建工作,但我无法将相应的 csv 文件保存到正确的文件夹中。我应该如何解决这个问题
df 是包含 3 个不同 pandas-dataframes 的列表
def write2path(df):
path = getcwd()
subjects = ["subject%d"%i for i in range(1,31)]
activities = [str(i) for i in range(1,7)]
try:
path = path + "\\DATA"
mkdir(path)
for l in subjects:
temp_path = path +"\\"+ l
mkdir(temp_path)
for k in activities:
temp_path_child = temp_path +"\\" + k
mkdir(temp_path_child)
for j in range(len(df)):
ch='x'
for i, x in df[j].loc[(['Subject0'] == int(l[7])) & (['Activity0'] == int(k))]:
print(x)
val=chr(ord(ch)+j)
x.to_csv(temp_path_child+"\\"+f'sensor-{val}.csv', index=False)
return self._engine.get_loc(self._maybe_cast_indexer(key))
File "pandas\_libs\index.pyx", line 111, in pandas._libs.index.IndexEngine.get_loc
File "pandas\_libs\index.pyx", line 135, in pandas._libs.index.IndexEngine.get_loc
File "pandas\_libs\index_class_helper.pxi", line 109, in pandas._libs.index.Int64Engine._check_type
KeyError: False
【问题讨论】:
-
在您的实际文件中,
S和A的唯一组跨越多行 - 就像DATA\S1\A1会有不止一行?您当前的 df 将作为单行输出,您还可以解释文件名的逻辑吗? -
当然。在我的实际数据集中,我有 7300 行对应于多个“主题”和“活动”(6 个活动标签 30 个主题标签)。我想要一个 DATA 目录作为每个主题目录的父目录。每个主题目录都会有 Activity(1,2,3,4,5,6) 目录。在活动目录中,我将包含包含 X Y Z 主题活动作为列的 csv 文件。 DATA\subject1\Activity1\x-value.csv
-
我添加了一张我想要为你实现的目标的图片。
标签: python pandas dataframe csv pandas-groupby