鱼C论坛

 找回密码
 立即注册
查看: 1305|回复: 9

[已解决]如何删除包含某个数的列

[复制链接]
发表于 2023-8-19 08:20:37 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
时间                出入口        人流
9                东门                100
9                西门                200
9                南门                 300
10                东门                100
10                西门                200
10                南门                300
。。。。。。。。。。。。

请问大神,在python文件中,怎么包含‘东门’的行都删除?
最佳答案
2023-8-19 08:21:19
你可以使用pandas库来删除包含某个数的列。首先,你需要将数据加载到一个pandas的DataFrame中。然后,你可以使用 drop 函数来删除包含特定值的行。

下面是一个示例代码:
import pandas as pd

# 加载数据到DataFrame
data = {
    '时间': [9, 9, 9, 10, 10, 10],
    '出入口': ['东门', '西门', '南门', '东门', '西门', '南门'],
    '人流': [100, 200, 300, 100, 200, 300]
}
df = pd.DataFrame(data)

# 删除包含'东门'的行
df = df[df['出入口'] != '东门']

# 打印结果
print(df)

输出结果为:
   时间 出入口   人流
1   9  西门  200
2   9  南门  300
4  10  西门  200
5  10  南门  300

在这个示例中,我们使用了布尔索引来选择不包含'东门'的行,并将结果保存到了同一个DataFrame中。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-8-19 08:21:19 | 显示全部楼层    本楼为最佳答案   
你可以使用pandas库来删除包含某个数的列。首先,你需要将数据加载到一个pandas的DataFrame中。然后,你可以使用 drop 函数来删除包含特定值的行。

下面是一个示例代码:
import pandas as pd

# 加载数据到DataFrame
data = {
    '时间': [9, 9, 9, 10, 10, 10],
    '出入口': ['东门', '西门', '南门', '东门', '西门', '南门'],
    '人流': [100, 200, 300, 100, 200, 300]
}
df = pd.DataFrame(data)

# 删除包含'东门'的行
df = df[df['出入口'] != '东门']

# 打印结果
print(df)

输出结果为:
   时间 出入口   人流
1   9  西门  200
2   9  南门  300
4  10  西门  200
5  10  南门  300

在这个示例中,我们使用了布尔索引来选择不包含'东门'的行,并将结果保存到了同一个DataFrame中。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-8-19 08:45:52 | 显示全部楼层
isdkz 发表于 2023-8-19 08:21
你可以使用pandas库来删除包含某个数的列。首先,你需要将数据加载到一个pandas的DataFrame中。然后,你可 ...

很奇怪,运行后是我都要的结果,但用了这个方法后,我后续的程序涉及到调用列名[行],就会报错,可否有另外的去掉包含东门的列的方法?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-8-19 08:46:59 | 显示全部楼层
前后数据都是DATAFRAME的结果,列名也不变,就是无法调用了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-8-19 08:50:48 | 显示全部楼层
skyhouse 发表于 2023-8-19 08:45
很奇怪,运行后是我都要的结果,但用了这个方法后,我后续的程序涉及到调用列名[行],就会报错,可否有另 ...

不要把原来的覆盖掉就行了:
import pandas as pd

# 加载数据到DataFrame
data = {
    '时间': [9, 9, 9, 10, 10, 10],
    '出入口': ['东门', '西门', '南门', '东门', '西门', '南门'],
    '人流': [100, 200, 300, 100, 200, 300]
}
df = pd.DataFrame(data)

# 删除包含'东门'的行
df1 = df[df['出入口'] != '东门']

# 打印结果
print(df1)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-8-19 08:59:08 | 显示全部楼层
isdkz 发表于 2023-8-19 08:50
不要把原来的覆盖掉就行了:

试过,还是不行
  File "C:\Users\Administrator\PycharmProjects\pythonProject\venv\lib\site-packages\pandas\core\indexes\base.py", line 3803, in get_loc
    return self._engine.get_loc(casted_key)

base3803行的内容是
                return self._engine.get_loc(casted_key)
            except KeyError as err:
                raise KeyError(key) from err
            except TypeError:
                # If we have a listlike key, _check_indexing_error will raise
                #  InvalidIndexError. Otherwise we fall through and re-raise
                #  the TypeError.
                self._check_indexing_error(key)
                raise
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-8-19 09:04:48 | 显示全部楼层
本帖最后由 skyhouse 于 2023-8-19 09:06 编辑
isdkz 发表于 2023-8-19 08:50
不要把原来的覆盖掉就行了:


完整的错误代码是这样的:
Traceback (most recent call last):
  File "C:\Users\Administrator\PycharmProjects\pythonProject\venv\lib\site-packages\pandas\core\indexes\base.py", line 3803, in get_loc
    return self._engine.get_loc(casted_key)
  File "pandas\_libs\index.pyx", line 138, in pandas._libs.index.IndexEngine.get_loc
  File "pandas\_libs\index.pyx", line 165, in pandas._libs.index.IndexEngine.get_loc
  File "pandas\_libs\hashtable_class_helper.pxi", line 2263, in pandas._libs.hashtable.Int64HashTable.get_item
  File "pandas\_libs\hashtable_class_helper.pxi", line 2273, in pandas._libs.hashtable.Int64HashTable.get_item
KeyError: 1119

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "C:\Users\Administrator\PycharmProjects\pythonProject\venv\Scripts\计算.py", line 28, in <module>
    p = p + df['人流'][o]
  File "C:\Users\Administrator\PycharmProjects\pythonProject\venv\lib\site-packages\pandas\core\series.py", line 981, in __getitem__
    return self._get_value(key)
  File "C:\Users\Administrator\PycharmProjects\pythonProject\venv\lib\site-packages\pandas\core\series.py", line 1089, in _get_value
    loc = self.index.get_loc(label)
  File "C:\Users\Administrator\PycharmProjects\pythonProject\venv\lib\site-packages\pandas\core\indexes\base.py", line 3805, in get_loc
    raise KeyError(key) from err
KeyError: 1119
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-8-19 09:07:52 | 显示全部楼层
skyhouse 发表于 2023-8-19 09:04
完整的错误代码是这样的:
Traceback (most recent call last):
  File "C:%users\Administrator\Pyc ...

这个应该是相应的列名不存在导致的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-8-19 09:21:02 | 显示全部楼层
isdkz 发表于 2023-8-19 09:07
这个应该是相应的列名不存在导致的

是否有其他去掉东门列的方法,有的话,麻烦提供下,我再试试
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-8-19 11:03:50 From FishC Mobile | 显示全部楼层
skyhouse 发表于 2023-8-19 09:21
是否有其他去掉东门列的方法,有的话,麻烦提供下,我再试试

没有了,其它方法都是一样的原理,

至于你的代码的问题需要给出完整的代码才能确定
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-21 08:44

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表