【发布时间】:2021-04-22 16:15:29
【问题描述】:
我是 python 和相关库的新手,我自己在语法、数据类型等的森林中乱搞。我非常感谢关于以下问题的任何建议:我正在尝试从多个列中选择值(以下示例中的“数字”和“数字2”)基于一列(“字母”)中的值在数据框中,然后将不同列中的值组合到一个列表中,以便我可以对组合值进行统计分析.经过一定的反复试验,我得到了以下似乎可行的方法……但感觉有点笨拙。有没有更好的办法?!
非常感谢!
Letters = ["A","B", "C", "C", "D", "D", "D"]
Numbers =[1,1,1,2,1,2,3]
Numbers2 =[10,10,10,20,10,20,30]
test_dict={"Letter":Letters, "Number":Numbers, "Number2":Numbers2}
test=pd.DataFrame(test_dict)
numbers_by_letters =[]
for unique_letter in test["Letter"].unique():
numbers_by_letter =[]
for col in range (1, 3) :
number_by_letter=test[test["Letter"] == unique_letter].iloc[:,col]
numbers_by_letter.extend(number_by_letter)
numbers_by_letters.append(numbers_by_letter)
print (numbers_by_letters)
我得到的输出如下所示,是我想要的!
[[1, 10], [1, 10], [1, 2, 10, 20], [1, 2, 3, 10, 20, 30]]
【问题讨论】:
-
您能描述一下您希望如何将输入转换为输出吗?从你的代码很难理解。
-
不知道我知道如何回答这个问题!数据框中的输入值包含浮点值,底部显示的列表输出列表具有我需要的形式的输出。即,对于字母列中的每个唯一条目,我现在有一个简单的与该条目关联的值列表,该列表从不同的列编译而来。那是你需要的信息吗?如果不慢慢解释,我会尽力而为......谢谢!
标签: python list dataframe multiple-columns