- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个 df,如果我的 .apply()
中的“行”与我的字典中的项目匹配,我需要将列标记为“1”。但是,如果我的字典为空或不包含与我的 .apply()
在该实例中的行相同的“键”,脚本将失败。我怎样才能克服这个问题?
df = pd.DataFrame({'Key': ['10003', '10003', '10003', '10003', '10003','10003','10034'],
'Num1': [12,13,30,12,13,13,16],
'Num2': [121,122,122,124,125,126,127],
'admit': [2015019, 20150124, 20150206,20150211,20150220,20150407,20150211],
'discharge': [20150123, 20150202, 20150211,20150220,20150304,20150410,20150211]})
df['admit'] = pd.to_datetime(df['admit'], format='%Y%m%d')
df['discharge'] = pd.to_datetime(df['discharge'], format='%Y%m%d')
#df=df.head(5)
脚本:
d2 = df[df['discharge'].isin(range(30,40))].groupby('Key')['discharge'].apply(set).to_dict()
def find(x):
match2 = x['admit'] in d2[x['Key']]
return match2
df['flag'] = df.apply(find, axis=1).astype(int)
特别是,我需要标记一列,其中一行的入院日期等于另一行的出院日期,并且具有匹配出院日期的行在 Num1 中的值介于 30-40 之间。如果将 df 减少到仅 5 行 df=df.head(5)
,此脚本将按预期工作。但是当有些行的“键”不在字典中时,脚本会返回错误。我想知道是否为字典添加所有“关键”日期和空白日期会使这项工作成功?
KeyError: ('10034', 'occurred at index 6')
我想使用字典来执行上述任务,因为我的函数的其余部分具有与此类似的条件(那些更简单)。上面的代码在一个小样本上可以正常工作,但是我的字典经验很低,这让我很困惑。对不起,如果这是一个简单而愚蠢的问题。
最终目标:
Key Num1 Num2 admit discharge flag
0 10003 12 121 2015-01-09 2015-01-23 0
1 10003 13 122 2015-01-24 2015-02-02 0
2 10003 30 122 2015-02-06 2015-02-11 0
3 10003 12 124 2015-02-11 2015-02-20 1
4 10003 13 125 2015-02-20 2015-03-04 0
5 10003 13 126 2015-04-07 2015-04-10 0
6 10034 16 127 2015-02-11 2015-02-11 0
最佳答案
您可以使用 dict.get
并返回一个空列表。
例如:
def find(x):
match2 = x['admit'] in d2.get(x['Key'], [])
return match2
关于python - 字典为空时如何避免错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49331834/
我们已经有一个使用 AnyEvent 的库。它在内部使用 AnyEvent,并最终返回一个值(同步 - 不使用回调)。有什么方法可以将这个库与 Mojolicious 一起使用吗? 它的作用如下: #
我想从 XSD 文件生成带有 JAXB 的 Java 类。 问题是,我总是得到一些像这样的类(删除了命名空间): public static class Action { @X
我有一个关于 html 输入标签或 primefaces p:input 的问题。为什么光标总是自动跳转到输入字段。我的页面高度很高,因此您需要向下滚动。输入字段位于页面末尾,光标自动跳转(加载)到页
我今天在考虑面向对象设计,我想知道是否应该避免 if 语句。我的想法是,在任何需要 if 语句的情况下,您都可以简单地创建两个实现相同方法的对象。这两个方法实现只是原始 if 语句的两个可能的分支。
String graphNameUsed = graphName.getName(); if (graphType.equals("All") || graphType.equals(
我有一张友谊 table CREATE TABLE IF NOT EXISTS `friendList` ( `id` int(10) NOT NULL, `id_friend` int(10
上下文 Debian 64。Core 2 二人组。 摆弄循环。我使用了同一循环的不同变体,但我希望尽可能避免条件分支。 但是,即使我认为它也很难被击败。 我考虑过 SSE 或位移位,但它仍然需要跳转(
我最近在 Java 中创建了一个方法来获取字符串的排列,但是当字符串太长时它会抛出这个错误:java.lang.OutOfMemoryError: Java heap space我确信该方法是有效的,
我正在使用 (C++) 库,其中需要使用流初始化对象。库提供的示例代码使用此代码: // Declare the input stream HfstInputStream *in = NULL; tr
我有一个 SQL 查询,我在 WHERE 子句中使用子查询。然后我需要再次使用相同的子查询将其与不同的列进行比较。 我假设没有办法在子查询之外访问“emp_education_list li”? 我猜
我了解到在 GUI 线程上不允许进行网络操作。对我来说还可以。但是为什么在 Dialog 按钮点击回调上使用这段代码仍然会产生 NetworkOnMainThreadException ? new T
有没有办法避免在函数重定向中使用 if 和硬编码字符串,想法是接收一个字符串并调用适当的函数,可能使用模板/元编程.. #include #include void account() {
我正在尝试避免客户端出现 TIME_WAIT。我连接然后设置 O_NONBLOCK 和 SO_REUSEADDR。我调用 read 直到它返回 0。当 read 返回 0 时,errno 也为 0。我
我正在开发 C++ Qt 应用程序。为了在应用程序或其连接的设备出现故障时帮助用户,程序导出所有内部设置并将它们存储在一个普通文件(目前为 csv)中。然后将此文件发送到公司(例如通过邮件)。 为避免
我有一组具有公共(public)父类(super class)的 POJO。这些存储在 superclass 类型的二维数组中。现在,我想从数组中获取一个对象并使用子类 的方法。这意味着我必须将它们转
在我的代码中,当 List 为 null 时,我通常使用这种方法来避免 for 语句中的 NullPointerException: if (myList != null && myList.size
我正在尝试避免客户端出现 TIME_WAIT。我连接然后设置 O_NONBLOCK 和 SO_REUSEADDR。我调用 read 直到它返回 0。当 read 返回 0 时,errno 也为 0。我
在不支持异常的语言和/或库中,许多/几乎所有函数都会返回一个值,指示其操作成功或失败 - 最著名的例子可能是 UN*X 系统调用,例如 open( ) 或 chdir(),或一些 libc 函数。 无
我尝试按值提取行。 col1 df$col1[col1 == "A"] [1] "A" NA 当然我只想要“A”。如何避免 R 选择 NA 值?顺便说一句,我认为这种行为非常危险,因为很多人都会陷入
我想将两个向量合并到一个数据集中,并将其与函数 mutate 集成为 5 个新列到现有数据集中。这是我的示例代码: vector1% rowwise()%>% mutate(vector2|>
我是一名优秀的程序员,十分优秀!