使用 txt 中的指定标签从 dict 构建数据框

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)

ans*_*sev 8

用:

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)

或者 DataFrame.reindex

df = pd.DataFrame(thisdict).reindex(columns = thislist)
Run Code Online (Sandbox Code Playgroud)

或者 DataFrame.filter

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