我想从以下列表中创建一个数据框:
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:如果使用所有标量值,则必须传递索引
我想理解为什么这个错误,我想创建一个数据框,其中列是字符串,值是数字。
提前谢谢
答案 0 :(得分:3)
似乎需要:
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
contructor:
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
答案 1 :(得分:3)
你试过这个:
A - IPv4 address
答案 2 :(得分:0)
由于您在自己的解决方案中使用dict,请尝试Series
?
pd.Series(dict(zip(list2,list1))).to_frame().reset_index()
Out[1502]:
index 0
0 -103< n <-92 4
1 -114< n <-104 0
2 -11< n <0 3857
3 -126< n <-115 1
4 -137< n <-127 1
5 -150< n <-138 1
6 -22< n <-12 284
7 -34< n <-23 39
8 -45< n <-35 18
9 -57< n <-46 16
10 -68< n <-58 6
11 -80< n <-69 10
12 -91< n <-81 3
13 0< n <11 3924
14 12< n <22 334
15 23< n <34 43
16 35< n <45 14
17 46< n <57 4
18 58< n <68 3
19 69< n <80 3