我想从以下列表中创建一个数据框:
list1 = [1, 1, 1, 0, 4, 3, 10, 6, 16, 18, 39, 284, 3857, 3924, 334, 43, 14, 4, 3, 3]
list2 = ['-150< n <-138', '-137< n <-127', '-126< n <-115', '-114< n <-104', '-103< n <-92', '-91< n <-81', '-80< n <-69', '-68< n <-58', '-57< n <-46', '-45< n <-35', '-34< n <-23', '-22< n <-12', '-11< n <0', '0< n <11', '12< n <22', '23< n <34', '35< n <45', '46< n <57', '58< n <68', '69< n <80']
我试过了,还是不行
my_dict = {}
for i in range(len(temp)):
my_dict[temp2[i]] = temp[i]
df1 = pd.DataFrame(data=my_dict)
ValueError:如果使用所有标量值,则必须传递索引
我想了解为什么这是错误的,我想创建一个数据框,其中列是字符串,值是数字。
提前致谢
请您参考如下方法:
看来需要:
df = pd.DataFrame([list1], columns=list2)
print (df)
-150< n <-138 -137< n <-127 -126< n <-115 -114< n <-104 -103< n <-92 \
0 1 1 1 0 4
-91< n <-81 -80< n <-69 -68< n <-58 -57< n <-46 -45< n <-35 \
0 3 10 6 16 18
-34< n <-23 -22< n <-12 -11< n <0 0< n <11 12< n <22 23< n <34 \
0 39 284 3857 3924 334 43
35< n <45 46< n <57 58< n <68 69< n <80
0 14 4 3 3
但是如果需要带值的索引使用Series/DataFrame构造器:
s = pd.Series(list1, index=list2)
print (s)
-150< n <-138 1
-137< n <-127 1
-126< n <-115 1
-114< n <-104 0
-103< n <-92 4
-91< n <-81 3
-80< n <-69 10
-68< n <-58 6
-57< n <-46 16
-45< n <-35 18
-34< n <-23 39
-22< n <-12 284
-11< n <0 3857
0< n <11 3924
12< n <22 334
23< n <34 43
35< n <45 14
46< n <57 4
58< n <68 3
69< n <80 3
dtype: int64
df = pd.DataFrame(list1, index=list2, columns=['a'])
print (df)
a
-150< n <-138 1
-137< n <-127 1
-126< n <-115 1
-114< n <-104 0
-103< n <-92 4
-91< n <-81 3
-80< n <-69 10
-68< n <-58 6
-57< n <-46 16
-45< n <-35 18
-34< n <-23 39
-22< n <-12 284
-11< n <0 3857
0< n <11 3924
12< n <22 334
23< n <34 43
35< n <45 14
46< n <57 4
58< n <68 3
69< n <80 3
