这是我生成数据帧的代码:
import pandas as pd
import numpy as np
dff = pd.DataFrame(np.random.randn(1,2),columns=list('AB'))
Run Code Online (Sandbox Code Playgroud)
然后我得到了数据帧:
+------------+---------+--------+
| | A | B |
+------------+---------+---------
| 0 | 0.626386| 1.52325|
+------------+---------+--------+
Run Code Online (Sandbox Code Playgroud)
当我输入命令时:
dff.mean(axis=1)
Run Code Online (Sandbox Code Playgroud)
我有 :
0 1.074821
dtype: float64
Run Code Online (Sandbox Code Playgroud)
根据pandas的引用,axis = 1代表列,我期望命令的结果
A 0.626386
B 1.523255
dtype: float64
Run Code Online (Sandbox Code Playgroud)
所以这是我的问题:熊猫中的轴是什么意思?
我试图通过以下代码在pandas数据框中删除索引号的多列(我的数据集中的第2列和第70列,分别索引为1和69):
df.drop([df.columns[[1, 69]]], axis=1, inplace=True)
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
TypeError: unhashable type: 'Index'
Run Code Online (Sandbox Code Playgroud)
在我的代码中,[1,69]突出显示并说:
Expected type 'Integral', got 'list[int]' instead
Run Code Online (Sandbox Code Playgroud)
下面的代码执行我想要它成功完成的操作,但是在两行重复代码上(首先删除col索引69,然后是1,并且顺序很重要,因为删除先前的列会更改后面列的索引).我以为我可以简单地将多个列索引指定为列表,但也许我上面有错误?
df.drop([df.columns[69]], axis=1, inplace=True)
df.drop([df.columns[1]], axis=1, inplace=True)
Run Code Online (Sandbox Code Playgroud)
有没有办法可以在一行上执行此操作,类似于上面的第一个代码片段?
如何在一次通过中删除多个列?我知道这很有效
del df['A']
del df['B']
Run Code Online (Sandbox Code Playgroud)
但
del df[['A', 'B']]
Run Code Online (Sandbox Code Playgroud)
没有.
我有一个大熊猫数据框(> 100列)。我需要删除各种列集,我希望有一种使用旧列的方法
df.drop(df.columns['slices'],axis=1)
Run Code Online (Sandbox Code Playgroud)
我建立了一些选择,例如:
a = df.columns[3:23]
b = df.colums[-6:]
Run Code Online (Sandbox Code Playgroud)
作为a并b代表我要删除的列集。
下列
list(df)[3:23]+list(df)[-6:]
Run Code Online (Sandbox Code Playgroud)
产生正确的选择,但我不能用实现它drop:
df.drop(df.columns[list(df)[3:23]+list(df)[-6:]],axis=1)
Run Code Online (Sandbox Code Playgroud)
ValueError:操作数不能与形状(20,)(6,)一起广播
我环顾四周,但找不到答案。
(以下与我收到的错误有关):
python numpy ValueError:操作数不能与形状一起广播
感觉好像他们遇到了类似的问题,但是“切片”并不是分开的: 根据Pandas中的列名删除多个列
干杯
我想删除以“ TYPE”字样开头且不包含_1?
df =
TYPE_1 TYPE_2 TYPE_3 COL1
aaa asb bbb 123
Run Code Online (Sandbox Code Playgroud)
结果应为:
df =
TYPE_1 COL1
aaa 123
Run Code Online (Sandbox Code Playgroud)
目前,我正在手动删除这些列,但是,如果列数很大,此方法将不是很有效:
df = df.drop(["TYPE_2","TYPE_3"], axis=1)
Run Code Online (Sandbox Code Playgroud)