cre*_*nco 3 python dataframe python-3.x pandas
我想制作一个带有定义标签的数据框。不知道如何告诉熊猫从列表中获取标签。希望有人能帮忙
import numpy as np
import pandas as pd
df = []
thislist = []
thislist = ["A","D"]
thisdict = {
"A": [1, 2, 3],
"B": [4, 5, 6],
"C": [7, 8, 9],
"D": [7, 8, 9]
}
df = pd.DataFrame(data= thisdict[thislist]) # <- here is my problem
Run Code Online (Sandbox Code Playgroud)
我想得到这个:
df = A D
1 7
2 8
3 9
Run Code Online (Sandbox Code Playgroud)
用:
df = pd.DataFrame(thisdict)[thislist]
print(df)
A D
0 1 7
1 2 8
2 3 9
Run Code Online (Sandbox Code Playgroud)
我们也可以使用 DataFrame.drop
df = pd.DataFrame(thisdict).drop(columns = ['B','C'])
Run Code Online (Sandbox Code Playgroud)
df = pd.DataFrame(thisdict).reindex(columns = thislist)
Run Code Online (Sandbox Code Playgroud)
df = pd.DataFrame(thisdict).filter(items=thislist)
Run Code Online (Sandbox Code Playgroud)
我们也可以filter用来过滤thisdict.items()
df = pd.DataFrame(dict(filter(lambda item: item[0] in thislist, thisdict.items())))
print(df)
A D
0 1 7
1 2 8
2 3 9
Run Code Online (Sandbox Code Playgroud)
我认为这个答案是通过@anky_91的解决方案完成的
最后推荐大家看看 how to index