Python 创建数据帧自动索引禁用
有没有办法告诉熊猫不要按字符列进行索引?我的代码是Python 创建数据帧自动索引禁用,python,pandas,dataframe,indexing,Python,Pandas,Dataframe,Indexing,有没有办法告诉熊猫不要按字符列进行索引?我的代码是 A=['a','b','c'] B=[1,2,3] pd.DataFrame(A,B) 0 1 a 2 b 3 c 我想要的只是两列,这样我就可以按A列分组了。我该怎么做呢?我可以这样做,但我想跳过列名以获得尽可能多的性能 pd.DataFrame({'A':A,'B':B}) A B 0 a 1 1 b 2 2 c 3 如果您实际上只处理两个列,则可以将一个系列逐个分组 In [6]: A = ['a',
A=['a','b','c']
B=[1,2,3]
pd.DataFrame(A,B)
0
1 a
2 b
3 c
我想要的只是两列,这样我就可以按A列分组了。我该怎么做呢?我可以这样做,但我想跳过列名以获得尽可能多的性能
pd.DataFrame({'A':A,'B':B})
A B
0 a 1
1 b 2
2 c 3
如果您实际上只处理两个列,则可以将一个系列逐个分组
In [6]: A = ['a', 'a', 'b', 'b', 'c', 'c']
In [7]: B = [1, 2, 3, 4, 5, 6]
In [8]: pd.Series(B).groupby(A).mean()
Out[8]:
a 0.5
b 2.5
c 4.5
dtype: float64
我在下面提供了一些时间安排
In [9]: %timeit pd.Series(B).groupby(A).mean()
1000 loops, best of 3: 1.07 ms per loop
In [10]: %timeit pd.DataFrame({'A': A, 'B': B}).groupby('A').mean()
100 loops, best of 3: 2.66 ms per loop
In [11]: %timeit pd.DataFrame(list(zip(A, B))).groupby(0).mean()
100 loops, best of 3: 2.38 ms per loop
df=pd.DataFrame([A,B]).T
应该会给你想要的东西。pd.DataFrame(list(zip(A,B))
两者都可以。但是,当我尝试按0分组时,会出现一个错误,如pd.DataFrame([A,B]).T.groupby(0.mean()。我认为当它被转置时,它正在丢失类型。当你说,“所以我可以做groupby列A”,你是什么意思?您想要的输出是什么样的?'pd.DataFrame(list(zip(A,B))).groupby(0,as_index=False).mean()?