python - 过滤数据框的列导致空系列
问题描述
我有这个代码片段,目的是用数据框列的值填充子列表,但仅限于与另一列中的某个值匹配的记录。
最后一行是最相关的,但我添加了框架。
for key, value in dict1.items():
if key[0] + "rel" in dict2:
i = int(key[0])
name_col = df1.columns[int(value)]
lists_dict1[i] = df1.loc[df1["header5"] == 1, name_col].tolist()
我的问题是子列表 lists_dict1[i] 最后是空的。 它必须是最后一行(?),因为...
这是我已经测试过的东西的一些背景:
i = int(key[0])
单独打印,它可以工作(例如 0 和 2),这也表明 If 语句已激活
name_col = df1.columns[int(value)]
打印了这个,它给了我列的实际名称
print(df1["header5"])
列存在;预期值(0 或 1)
print(df1.loc[df1["header5"] == 1, name_col].tolist())
空列表 >> 为什么?
print(df1.loc[df1["header5"] == 1, "crit_abs"])
空系列对象
dict1 {'0ber': '0', '1ber': '1', '2ber': '2', '3ber': '3'}
dict2 {'0rel': '0', '2rel': '2', '1abs': '1', '3abs': 'ja'}
df1(示例;仅用于上下文;没有问题)
df1 = {"header1": ["abc1", "abc2", "abc3"], "header2": [1, 1, 0], "header3": ["def5", "def8", "def2"], "header4": ["ja", "nein", "ja"], "header5": [1, 0, 1]}
df1 = pandas.DataFrame.from_dict(df1)
解决方案
问题可能在于您如何围绕您提供的示例构建代码。以下示例将代码的不同部分串在一起并起作用。你能让这个例子运行吗?
import pandas as pd
df1 = {"header1": ["abc1", "abc2", "abc3"], "header2": [1, 1, 0], "header3": ["def5", "def8", "def2"], "header4": ["ja", "nein", "ja"], "header5": [1, 0, 1]}
df1 = pd.DataFrame.from_dict(df1)
dict1 = {'0ber': '0', '1ber': '1', '2ber': '2', '3ber': '3'}
dict2 = {'0rel': '0', '2rel': '2', '1abs': '1', '3abs': 'ja'}
lists_dict1 = {}
for key, value in dict1.items():
print('Key (' + key + ') Value (' + value + ')')
if key[0] + "rel" in dict2:
i = int(key[0])
name_col = df1.columns[int(value)]
print('Detected Valid Name Col = ' + name_col)
lists_dict1[i] = df1.loc[df1["header5"] == 1, name_col].tolist()
print('Output Lists Dictionary: ' + str(lists_dict1))
当我运行它时,它返回:
Key (0ber) Value (0)
Detected Valid Name Col = header1
Key (1ber) Value (1)
Key (2ber) Value (2)
Detected Valid Name Col = header3
Key (3ber) Value (3)
Output Lists Dictionary: {0: ['abc1', 'abc3'], 2: ['def5', 'def2']}
如果我给出的示例对您有用,您可能需要查看如何在项目中构建代码。, df1
, dict1
, dict2
orlists_dict1
可能没有事先正确定义,或者它们在之后被覆盖。
如果我给出的示例不起作用,您使用的是什么版本的熊猫?
推荐阅读
- reactjs - 如何在滚动时关闭 React Bootstrap Table2 可扩展行
- sql - 编译器如何评估以下查询?
- azure - 从 Node.js 函数访问 Azure Synapse Analytics
- c++ - 如何正确跟踪 C++ 中的内存分配和释放,并重载运算符新闻和运算符删除?
- .net - 如何阻止用户使用 JWT 创建自定义 POST 请求?
- vba - VBA代码从一个工作表到另一个工作表中搜索列数据并将相应的行数据粘贴到第一个工作表上
- excel - Excel VBA 正则表达式模式给出错误'5018'
- android - cipher.doFinal 上的 AEADBadTagException
- go - 为数组值创建索引
- android - android facebook登录按钮行为