我有一个数据帧。我想得到不同类的所有值的列表。
df = pd.DataFrame([(3, 1),
(4, 3),
(6, 2),
(7, 2),
(2, 3),
(4, 2),
(4, 1),
(1, 3),
(6, 3),
(8, 1)],
columns=['Feature', 'Class'])
在上面的示例中,我有三个类,即1、2和3。我想得到一个类中所有不同值列表的输出。输出可以如下所示:
Class 1: [3, 4, 8]
Class 2: [6, 7, 4]
Class 3: [4, 2, 1, 6]
您只需执行以下操作:
classes = df.groupby('Class')['Feature'].apply(list)
输出:
>>> classes
Class
1 [3, 4, 8]
2 [6, 7, 4]
3 [4, 2, 1, 6]
Name: Feature, dtype: object
您可以这样打印它们:
>>> for class_number, items in classes.items():
... print(f'Class {class_number}: {items}')
...
Class 1: [3, 4, 8]
Class 2: [6, 7, 4]
Class 3: [4, 2, 1, 6]
如果你想获得所有独特的值,试试这个:
unique = df.groupby('Class')['Feature'].unique()
d = {}
[d.setdefault(v.Class, []).append(v.Feature) for _, v in df.iterrows()]
d
# {1: [3, 4, 8], 3: [4, 2, 1, 6], 2: [6, 7, 4]}
正如在这个伟大的答案中所指出的,您可以使用pandas.DataFrame.groupby()
方法以及pandas.DataFrame.apply()
方法来实现这一点:
import pandas as pd
df = pd.DataFrame([(3, 1),
(4, 3),
(6, 2),
(7, 2),
(2, 3),
(4, 2),
(4, 1),
(1, 3),
(6, 3),
(8, 1)],
columns=['Feature', 'Class'])
print(df.groupby('Class')['Feature'].apply(list))
输出:
Class
1 [3, 4, 8]
2 [6, 7, 4]
3 [4, 2, 1, 6]
Name: Feature, dtype: object
但是,如果要逐个循环遍历类号,更直观的方法是使用pandas.DataFrame.loc
属性,如下所示:
print(df.loc[df['Class'] == 1])
输出:
Feature Class
0 3 1
6 4 1
9 8 1
或者包括“功能”
列以获取:
print(df.loc[df['Class'] == 1]["Feature"])
输出:
0 3
6 4
9 8
Name: Feature, dtype: int64
我根据列生成了一个唯一的值,但我想得到的结果是来自不同列的转换值。下面是代码供您参考: 获取唯一值 预期结果:
我正在使用python开发web框架。下面是我的数据库。这个数据库名是fruit。 我在用炼金术。所以类名是水果。我应该写些什么来得到下面的结果。。?我想从“名称”列中获取值。 [‘苹果’、‘梨’、‘葡萄’] 有没有办法直接执行SQL查询。。?
假设我有员工数据列表。 使用上面的empList,如何获得两个不同的列表,如年龄
问题内容: 我有一个名为“ posts”的SQL表,如下所示: 每个类别编号对应一个类别。我将如何计算每个类别在 一个sql查询中 全部出现在帖子中的次数? 例如,这样的查询可能返回如下符号数组: 我当前的方法是对每个可能的类别使用查询,例如:,然后将返回值组合到最终数组中。但是,我正在寻找一种仅使用一个查询的解决方案。 问题答案:
我需要你对Web应用程序概念的帮助。我想使用单个查询从不同的表中获取不同的列。所有表中的一列都是相同的,比如pk_data(varchar)。但是我需要基于列的不同列。例如,我需要第一个表的用户名和第二个表的地址,第三个表的年龄和第四个表的成本。但是我还需要使用带有列的where子句。 我们可以用其他方式理解这个问题。我有一个变量,其中包含许多。我想根据此记录获取数据。 并且< code>Hash
问题内容: 假设我的表包含以下内容: 每次通过while循环。我想获取价格值的总和,但ID中的每个不同值仅获取一次 因此,以上述示例为例,我将得到类似以下内容的信息: 补充一下,我可能偶然发现了类似的帖子。问题是其他职位使用Oracle,另一方面我正在使用MySQL。 问题答案: 你需要和