这可能是一个简单的问题,但我不知道该怎么做。假设有两个变量。
a = 2
b = 3
我想从这个构建一个数据框架:
df2 = pd.DataFrame({'A':a,'B':b})
这会产生一个错误:
ValueError:如果使用所有标量值,则必须传递一个索引
我也试过这个:
df2 = (pd.DataFrame({'a':a,'b':b})).reset_index()
这将给出相同的错误消息。
这可能是一个简单的问题,但我不知道该怎么做。假设有两个变量。
a = 2
b = 3
我想从这个构建一个数据框架:
df2 = pd.DataFrame({'A':a,'B':b})
这会产生一个错误:
ValueError:如果使用所有标量值,则必须传递一个索引
我也试过这个:
df2 = (pd.DataFrame({'a':a,'b':b})).reset_index()
这将给出相同的错误消息。
当前回答
我通常使用以下方法从字典快速创建一个小表。
假设你有一个dict,其中键是文件名,值是对应的文件大小,你可以使用以下代码将它放入一个DataFrame(注意dict上的.items()调用):
files = {'A.txt':12, 'B.txt':34, 'C.txt':56, 'D.txt':78}
filesFrame = pd.DataFrame(files.items(), columns=['filename','size'])
print(filesFrame)
filename size
0 A.txt 12
1 B.txt 34
2 C.txt 56
3 D.txt 78
其他回答
你可以试试这个: df2 = pd.DataFrame.from_dict ({a: a、b: b},东方=“指数”)
首先你需要创造一个熊猫系列。第二步是将pandas系列转换为pandas数据框架。
import pandas as pd
data = {'a': 1, 'b': 2}
pd.Series(data).to_frame()
您甚至可以提供列名。
pd.Series(data).to_frame('ColumnName')
这是因为DataFrame有两个直观的维度——列和行。
您只是使用字典键指定列。
如果您只想指定一维数据,请使用Series!
输入不一定是一个记录列表,也可以是一个字典:
pd.DataFrame.from_records({'a':1,'b':2}, index=[0])
a b
0 1 2
这似乎相当于:
pd.DataFrame({'a':1,'b':2}, index=[0])
a b
0 1 2
我尝试了转置(),它工作。 缺点:您创建了一个新对象。
testdict1 = {'key1':'val1','key2':'val2','key3':'val3','key4':'val4'}
df = pd.DataFrame.from_dict(data=testdict1,orient='index')
print(df)
print(f'ID for DataFrame before Transpose: {id(df)}\n')
df = df.transpose()
print(df)
print(f'ID for DataFrame after Transpose: {id(df)}')
输出
0
key1 val1
key2 val2
key3 val3
key4 val4
ID for DataFrame before Transpose: 1932797100424
key1 key2 key3 key4
0 val1 val2 val3 val4
ID for DataFrame after Transpose: 1932797125448
```