Python 3.x Python/Pandas:如何根据所选的行名称(模式)创建列值列表?

Python 3.x Python/Pandas:如何根据所选的行名称(模式)创建列值列表?,python-3.x,pandas,dataframe,data-analysis,Python 3.x,Pandas,Dataframe,Data Analysis,如何基于模式名实现它的值列表-参见图 假设我选择“Pattern_8_0_100_8_2”,我希望与该行关联的列中的值(8,0,100,8,2)成为一个列表。熊猫图书馆有没有办法做到这一点 我要创建的列表: Pattern_8_0_100_8_2=['8','0','100','8','2'] Pattern_8_0_200_16_3=['8','0','200','16','3'] Pattern_8_0_300_32_4=['8','0','300','32','4'] Pattern_8_

如何基于模式名实现它的值列表-参见图

假设我选择“Pattern_8_0_100_8_2”,我希望与该行关联的列中的值(8,0,100,8,2)成为一个列表。熊猫图书馆有没有办法做到这一点

我要创建的列表:

Pattern_8_0_100_8_2=['8','0','100','8','2']

Pattern_8_0_200_16_3=['8','0','200','16','3']

Pattern_8_0_300_32_4=['8','0','300','32','4']

Pattern_8_0_400_64_5=['8','0','400','64','5']

到目前为止,我能够读取包含数据的xlxs文件,并按特定行打印数据(见图)

将熊猫作为pd导入

dyn\u power\u df=pd.read\u excel(r“C:\power.xlsx”)

dyn\u power\u df[dyn\u power\u df[“pattern”]=“pattern\u 8\u 0\u 100\u 8\u 2”]


我想我们必须使用基于模式名的条件(if-else)语句来将值存储在与其相关联的列中?有没有更简单的方法?请帮助我,因为我还是python/pandas新手。谢谢

首先,让我们构建一个空数据帧

patterns = [
    "Pattern_8_0_100_8_2",
    "Pattern_8_0_200_16_3",
    "Pattern_8_0_300_32_4",
    "Pattern_8_0_400_64_5",
]

columns = [
    "Channel Count",
    "FEC count",
    "Input Clock Freq",
    "Data Rate",
    "Post PLL Divider",
]

df = pd.DataFrame(columns=columns, index=patterns)
现在我们可以迭代数据帧,并将索引拆分为列

for index, row in df.iterrows():
    li = index.split("_")
    for c in range(5):
        df.loc[index][c] = int(li[c + 1])
最后,我们可以使用刚刚创建的数据框架中的列压缩索引,以创建具有您的模式的元组列表,然后是值列表

print(list(zip(df.index, df.values.tolist())))
结果是:

[('Pattern_8_0_100_8_2', [8, 0, 100, 8, 2]),
 ('Pattern_8_0_200_16_3', [8, 0, 200, 16, 3]),
 ('Pattern_8_0_300_32_4', [8, 0, 300, 32, 4]),
 ('Pattern_8_0_400_64_5', [8, 0, 400, 64, 5])]

您可以按
拆分列。您需要提供一个最简单的示例我没有尝试拆分模式名称中的数字,而是在列表中与行/模式名称关联的列中添加值。