相关疑难解决方法(0)

熊猫:获取数组中的所有groupby值

我确定这已经被问过了,如果重复的话,对不起。假设我有以下数据框:

df = pd.DataFrame({'key': ['A', 'B', 'C', 'A', 'B', 'C'],
                   'data': range(6)}, columns=['key', 'data'])

>>
    key data
0   A   0
1   B   1
2   C   2
3   A   3
4   B   4
5   C   5
Run Code Online (Sandbox Code Playgroud)

对“键”进行分组,df.groupby('key').sum()我知道我们可以做以下事情:

>> 
    data
key 
A   3
B   5
C   7
Run Code Online (Sandbox Code Playgroud)

获取数组中所有“拆分”数据的最简单方法是什么?

>> 
    data
key 
A   [0, 3]
B   [1, 4]
C   [2, 5]
Run Code Online (Sandbox Code Playgroud)

我不一定只按一个键进行分组,但也要按其他几个索引进行分组(例如“年”和“月”),这就是为什么我想使用groupby函数,但将所有分组值保留在一个键中的原因。数组。

pandas split-apply-combine pandas-groupby

3
推荐指数
1
解决办法
1086
查看次数

Pandas 将一列按另一列分组

我有一个 pandas 数据框,如下所示:

A B
1 a
1 b
1 c
2 d
2 e
2 f
Run Code Online (Sandbox Code Playgroud)

我想通过“A”列获取“B”列的值列表,因此最终产品如下所示:

list_one = [a, b, c]
list_two = [d, e, f]
Run Code Online (Sandbox Code Playgroud)

我试过了:

df.groupby(['A','B'])
Run Code Online (Sandbox Code Playgroud)

但是,这并没有达到我想要的效果。

实现这一目标的优雅 Python 方式是什么?

python group-by dataframe pandas

2
推荐指数
1
解决办法
6220
查看次数

获取 Dataframe 中每个重复值序列的第一个值

假设我有 df:

df = pd.DataFrame({'Day': range(1, 21),
               'Col1' : ['A', 'A', 'A', 'B', 'B', 'B', 'B', 'C', 'C', 'A', 'A', 'A', 'A', 'A', 'D', 'B', 'B', 'E', 'E', 'A']})

    Day Col1
0     1    A
1     2    A
2     3    A
3     4    B
4     5    B
5     6    B
6     7    B
7     8    C
8     9    C
9    10    A
10   11    A
11   12    A
12   13    A
13   14    A
14   15    D
15   16    B
16 …
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas

2
推荐指数
1
解决办法
654
查看次数

以一栏为键,一栏为值将CSV转换为字典

您好,我有以下格式的CSV文件:

ticket asset
1111   3456
1111   6789
1122   2345
1122   7890
Run Code Online (Sandbox Code Playgroud)

我想将其转换为Dict,例如:

{'1111': ['3456', '6789'], '1122':['2345', '7890']}
Run Code Online (Sandbox Code Playgroud)

基本上希望将票证作为“键”,并将该票证下的所有资产作为“值”。

csv.DictReader()有所帮助,但是我无法提取密钥的唯一票据编号,也无法匹配其下的所有资产的价值。

任何帮助将是巨大的:)

感谢您如此快速地获取CSV> Dict!

如果我想将元组转换为Dict,那将如何工作?

例如:Tuple:(((1111,3456),(1111,6789),(1122,2345),(1122,7890))

我希望将其转换为:

{'1111':['3456','6789'],'1122':['2345','7890']}

python csv dictionary

1
推荐指数
1
解决办法
234
查看次数

使用数据框中的两列创建一个字典,一列中有重复项

我想从数据框的 2 列创建一个 dict。

假设它们看起来像这样:

A         B
car1     brand1
car2     brand2
car3     brand1
car4     brand3
car5     brand2
Run Code Online (Sandbox Code Playgroud)

输出:

{'brand1': ['car1', 'car3'], 'brand2': ['car2', 'car5'], 'brand3': 'car4'}
Run Code Online (Sandbox Code Playgroud)

有 to_dict 方法,但是当我尝试使用它时,我无法让它向键添加值,而是只将 1 个值映射到 1 个键。

我知道我可以循环 A 列,使用 iloc 检查 B 列中的值,然后使用 if else 创建新键或向现有键添加值,但我正在寻找一个优雅的解决方案。

python dataframe pandas

1
推荐指数
1
解决办法
198
查看次数