【发布时间】:2021-03-15 15:37:19
【问题描述】:
我有类似空数据框矩阵的东西。
A = {'folder1':{'case1':pd.Dataframe(), 'case2':pd.Dataframe(),... , 'case8':pd.Dataframe()}\
{'folder2':{'case1':pd.Dataframe(), 'case2':pd.Dataframe(),... , 'case8':pd.Dataframe()}\
...
{'foldern':{'case1':pd.Dataframe(), 'case2':pd.Dataframe(),... , 'case8':pd.Dataframe()}}
其中A[folder][case] 是一个空的DataFrame。
我已经有另一个形式的非空数据帧的字典
BASIS = {'folder1':{'arch01':pd.Dataframe(...), 'arch02':pd.Dataframe(...)}\
{'folder2':{'arch01':pd.Dataframe(...), 'arch02':pd.Dataframe(...)}\
...
{'foldern':{'arch01':pd.Dataframe(...), 'arch02':pd.Dataframe(...)}}
其中BASIS[folder][arch] 是一个非空数据框,其中有很多行我想将其与其他A[folder]['case'] 分开。
例如,BASIS[folder]['arch01'] 将被拆分为 A[folder]['case1'] + A[folder]['case2'] + A[folder]['case3']
基本上我想在['casei']、['casej'] 中划分[arch],其中'i'和'j'是某些情况发生的情况
我正在尝试以这种方式为这些数据框赋值:
for folder in ['folder1', 'folder2',... 'foldern']:
IRLB = BASIS[folder]["arch01"].copy()
condition01 = IRLB.loc[(IRLB['Column3'].str.contains('AAA',case=False))]
A[folder]['case1'] = A[folder]['case1'].append(condition01)
condition02 = IRLB.loc[(IRLB['Column3'].str.contains('BBB',case=False))]
A[folder]['case2'] = A[folder]['case2'].append(condition02)
... (and other conditions to others cases of A)
我收到以下错误: 只有 A 的最后一个文件夹被填充,其他的仍然是空的数据框。
【问题讨论】:
-
我已经尝试过 A[folder]['case1'] = condition01 最后一个 A[folder] 只包含最后一个 foder 的 condition01。当我使用上面的代码时,A[folder] 还包含所有先前文件夹的 condition01
-
我认为您最好使用一个数据框,该数据框还包含指示哪个文件夹和案例与每一行相关联的列
标签: python pandas dataframe dictionary