假设我创建了一个DataFrame:
import pandas as pd
df = pd.DataFrame({"a": [1,2,3,13,15], "b": [4,5,6,6,6], "c": ["wish", "you","were", "here", "here"]})
Run Code Online (Sandbox Code Playgroud)
像这样:
a b c
0 1 4 wish
1 2 5 you
2 3 6 were
3 13 6 here
4 15 6 here
Run Code Online (Sandbox Code Playgroud)
...然后按几列分组和汇总......
gb = df.groupby(['b','c']).agg({"a": lambda x: x.nunique()})
Run Code Online (Sandbox Code Playgroud)
产生以下结果:
a
b c
4 wish 1
5 you 1
6 here 2
were 1
Run Code Online (Sandbox Code Playgroud)
是否可以df与新聚合的表合并,以便gb在df中创建一个新列,其中包含相应的值gb?像这样:
a b c nc
0 1 4 wish 1
1 2 …Run Code Online (Sandbox Code Playgroud) 我有一个数据框,其中(由于我控制之外的东西)变量的数量从1到20不等,所有变量都被命名为1,2,3,4,5 ....等等
有一天有四列:
data = {'1': ['A', 'B', 'C', 'D', 'E'],
'2': [1, 0, 1, 0, 1],
'3': [1, 1, 0, 0, 3],
'4': [0, 0, 1, 1, 1]}
df = pd.DataFrame(data)
df
Run Code Online (Sandbox Code Playgroud)
另一天有2列:
data = {'1': ['A', 'B', 'C', 'D', 'E'],
'2': [1, 0, 1, 0, 1]}
df = pd.DataFrame(data)
df
Run Code Online (Sandbox Code Playgroud)
我想要的是:
使用"variable_"前缀每个列名称(无论列数如何).所以它看起来像这样:
data = {'variable_1': ['A', 'B', 'C', 'D', 'E'],
'variable_2': [1, 0, 1, 0, 1],
'variable_3': [1, 1, 0, 0, 3],
'variable_4': [0, 0, 1, 1, 1]} …Run Code Online (Sandbox Code Playgroud) 我正在使用 Anaconda 从配置单元读取表,并且我的所有列名都已自动添加前缀,如 test.age、test.sex、test. Degree... 如何使用 pandas 删除所有前缀“test.”?
通过 1. 仅选择某些列和 2. 同时重命名它们,从现有数据帧创建新数据帧的最优雅方法是什么?
例如,我有以下数据框,我想在其中选择列 B、D 和 F 并将它们重命名为 X、Y、Z
基础数据框
A B C D E F
1 2 3 4 5 6
1 2 3 4 5 6
Run Code Online (Sandbox Code Playgroud)
新数据框
X Y Z
2 4 6
2 4 6
Run Code Online (Sandbox Code Playgroud)