我确定这已经被问过了,如果重复的话,对不起。假设我有以下数据框:
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 数据框,如下所示:
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 方式是什么?
假设我有 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) 您好,我有以下格式的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']}
我想从数据框的 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 创建新键或向现有键添加值,但我正在寻找一个优雅的解决方案。