方法#3:
我不确定您为什么会收到内存错误。让我尝试另一种方法。我将数据集转换为普通字典,可以作为普通数据框加载到 pandas 中。看看这是否有效。
d = {}
for i in data:
for k,v in i.items():
if k in d:
d[k] = list(d[k]) + v.split(',')
else:
d[k] = v.split(',')
m = max(len(v) for k,v in d.items())
dd = {k:v+['']*(m-len(v)) for k,v in d.items()}
import pandas as pd
df = pd.DataFrame(dd)
print (df)
方法#2:
你可以试试这个选项吗:
data = [{k:v.split(',') for k,v in i.items()} for i in data]
import pandas as pd
df = pd.DataFrame.from_dict(data)
dc = df.columns.to_list()
for col in dc:
df = df.explode(col)
print (df)
方法#1:
您可以执行以下操作:
data = [
{"var1": "EEA", "var2": "%K12%"},
{"var1": "OVERALL"},
{"var1": "ETLA"},
{"var1": "A,B,C,D,E"},
{"var1": "M,Q"},
{"var1": "G,H"},
{"var1": "I,J"},
{"var1": "K,L,M"},
{"var3": "R,T", "var2": "F"},
{"var3": "EDUCATION", "var4": "TM"},
{"var3": "A,B", "var4": "TM", "var5": "CCE,CCT,PP"},
{"var1": "PHLT,PPSK,PLES,LPES", "var4": "HI"},
{"var3": "EDUCATION", "var4": "HI", "var5": "CCM"},
{"var3": "EDUCATION", "var4": "HI", "var5": "PP"},
{"var4": "HI", "var5": "CCM"},
{"var4": "HI", "var5": "PP"},
{"var3": "A,B", "var6": "C"},
{"var3": "", "var1": "", "var4": "", "var2": "", "var5": "", "var6": ""},
]
import pandas as pd
df = pd.DataFrame.from_dict(data)
dc = df.columns.to_list()
for col in dc:
df[col] = df[col].str.split(',')
df = df.explode(col)
print (df)
这个输出将是:
var1 var2 var3 var4 var5 var6
0 EEA %K12% NaN NaN NaN NaN
1 OVERALL NaN NaN NaN NaN NaN
2 ETLA NaN NaN NaN NaN NaN
3 A NaN NaN NaN NaN NaN
3 B NaN NaN NaN NaN NaN
3 C NaN NaN NaN NaN NaN
3 D NaN NaN NaN NaN NaN
3 E NaN NaN NaN NaN NaN
4 M NaN NaN NaN NaN NaN
4 Q NaN NaN NaN NaN NaN
5 G NaN NaN NaN NaN NaN
5 H NaN NaN NaN NaN NaN
6 I NaN NaN NaN NaN NaN
6 J NaN NaN NaN NaN NaN
7 K NaN NaN NaN NaN NaN
7 L NaN NaN NaN NaN NaN
7 M NaN NaN NaN NaN NaN
8 NaN F R NaN NaN NaN
8 NaN F T NaN NaN NaN
9 NaN NaN EDUCATION TM NaN NaN
10 NaN NaN A TM CCE NaN
10 NaN NaN A TM CCT NaN
10 NaN NaN A TM PP NaN
10 NaN NaN B TM CCE NaN
10 NaN NaN B TM CCT NaN
10 NaN NaN B TM PP NaN
11 PHLT NaN NaN HI NaN NaN
11 PPSK NaN NaN HI NaN NaN
11 PLES NaN NaN HI NaN NaN
11 LPES NaN NaN HI NaN NaN
12 NaN NaN EDUCATION HI CCM NaN
13 NaN NaN EDUCATION HI PP NaN
14 NaN NaN NaN HI CCM NaN
15 NaN NaN NaN HI PP NaN
16 NaN NaN A NaN NaN C
16 NaN NaN B NaN NaN C
17