Python 3.x Python/Pandas:如何根据所选的行名称(模式)创建列值列表?
如何基于模式名实现它的值列表-参见图 假设我选择“Pattern_8_0_100_8_2”,我希望与该行关联的列中的值(8,0,100,8,2)成为一个列表。熊猫图书馆有没有办法做到这一点 我要创建的列表: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_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])]
您可以按
拆分列。您需要提供一个最简单的示例我没有尝试拆分模式名称中的数字,而是在列表中与行/模式名称关联的列中添加值。