- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想根据索引中的值创建一个列:
如果索引以字母值而不是“I0”开头,则返回“P”,否则返回“C”。
尝试过:
df['new_col'] = ['P' if (x[0].isalpha() and not x[0].startswith("I0")) else 'C' for x in df.index]
但它为以 'I0'
开头的行返回“P”:
A B C new_col
Index
I00001 1.325337 4.692308 1.615385 P
I00002 1.614780 3.615385 0.769231 P
I00003 1.141453 5.461538 2.000000 P
I00004 0.918300 8.538462 2.769231 P
I00005 1.189606 11.846154 2.692308 P
I00006 0.941459 7.153846 2.153846 P
I00007 0.466383 12.153846 9.384615 P
I00008 0.308627 198.692308 23.461538 P
I00011 0.537142 23.384615 6.846154 P
I00012 1.217390 11.923077 1.230769 P
I00013 1.052840 3.384615 2.000000 P
...
可重现的例子:
df = pd.DataFrame({'A': {'I00001': 1.3253365856660808,
'I00002': 1.6147800817881086,
'I00003': 1.1414534979918203,
'I00004': 0.9183004454646491,
'I00005': 1.1896061362142527,
'I00006': 0.941459102789141,
'I00007': 0.46638312473267185,
'I00008': 0.3086270976042302,
'I00011': 0.5371419441302684,
'I00012': 1.2173904641254587,
'I00013': 1.052839529263679,
'I00014': 1.3587324409735149,
'I00015': 3.464101615137755,
'I00016': 1.1989578808281798,
'I00018': 0.2433560755649686,
'I00019': 0.5510000980337852,
'I00020': 3.464101615137755,
'I00022': 1.0454523047666737,
'I00023': 1.3850513878332371,
'I00024': 1.3314720972390754},
'B': {'I00001': 4.6923076923076925,
'I00002': 3.6153846153846154,
'I00003': 5.461538461538462,
'I00004': 8.538461538461538,
'I00005': 11.846153846153847,
'I00006': 7.153846153846154,
'I00007': 12.153846153846153,
'I00008': 198.69230769230768,
'I00011': 23.384615384615383,
'I00012': 11.923076923076923,
'I00013': 3.3846153846153846,
'I00014': 1.0,
'I00015': 0.07692307692307693,
'I00016': 0.6153846153846154,
'I00018': 481.7692307692308,
'I00019': 7.3076923076923075,
'I00020': 0.07692307692307693,
'I00022': 1.6153846153846154,
'I00023': 0.5384615384615384,
'I00024': 12.538461538461538},
'C': {'I00001': 1.6153846153846154,
'I00002': 0.7692307692307693,
'I00003': 2.0,
'I00004': 2.769230769230769,
'I00005': 2.6923076923076925,
'I00006': 2.1538461538461537,
'I00007': 9.384615384615385,
'I00008': 23.46153846153846,
'I00011': 6.846153846153846,
'I00012': 1.2307692307692308,
'I00013': 2.0,
'I00014': 0.38461538461538464,
'I00015': 0.07692307692307693,
'I00016': 0.46153846153846156,
'I00018': 79.07692307692308,
'I00019': 3.6923076923076925,
'I00020': 0.07692307692307693,
'I00022': 1.1538461538461537,
'I00023': 0.46153846153846156,
'I00024': 2.3076923076923075}}
)
最佳答案
非循环解决方案 numpy.where
:
df['new_col'] = np.where(df.index.str[0].str.isalpha() &
~df.index.str.startswith("I0"), 'P', 'C')
您的解决方案 - 删除 x[0]
来自 x[0].startswith("I0")
- 如果不是 I0
,它会测试第一个值, 什么总是 True
:
df['new_col'] = ['P' if (x[0].isalpha() and not x.startswith("I0"))
else 'C' for x in df.index]
测试:
df = pd.DataFrame({'A': {'AA00001': 1.3253365856660808,
'I00002': 1.6147800817881086,
'IR0003': 1.1414534979918203,
'00004': 0.9183004454646491,
'**00005': 1.1896061362142527,
'I00007': 0.46638312473267185}}
)
df['new_col'] = np.where(df.index.str[0].str.isalpha() &
~df.index.str.startswith("I0"), 'P', 'C')
df['new_col1'] = ['P' if (x[0].isalpha() and not x.startswith("I0"))
else 'C' for x in df.index]
print (df)
A new_col new_col1
**00005 1.189606 C C
00004 0.918300 C C
AA00001 1.325337 P P
I00002 1.614780 C C
I00007 0.466383 C C
IR0003 1.141453 P P
关于python - Python 中列表理解的多个条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64149900/
如标题所示,ans_list是一个答案列表,ans_index是一个数字(答案在词汇表中的索引,但与atm无关) 这里生成的 tree.anslist 是什么? (例如,仅针对第一个),忽略迭代。 f
我目前将用户的输入存储在逗号分隔的列表中,如下所示: Userid | Options 1 | 1,2,5 用户在一个数组形式中勾选一组选项,然后用逗号连接起来 1,2,5 然后 MySQ
我目前将用户的输入存储在逗号分隔的列表中,如下所示: Userid | Options 1 | 1,2,5 用户在一个数组形式中勾选一组选项,然后用逗号连接起来 1,2,5 然后 MySQ
我想知道如何完全展平列表和包含它们的东西。除其他外,我想出了一个解决方案,它可以将具有多个元素的东西滑倒并将它们放回原处,或者在滑倒后将具有一个元素的东西拿走。 这与 How do I “flatte
我想知道如何完全展平列表和包含它们的东西。除其他外,我想出了一个解决方案,它可以将具有多个元素的东西滑倒并将它们放回原处,或者在滑倒后将带有一个元素的东西拿走。 这与 How do I “flatte
这个问题已经有答案了: Convert nested list to 2d array (3 个回答) 已关闭 7 年前。 java中有没有快捷方式可以转换 List> 到 String[][] ?
我在排序时遇到问题 List> 。我创建了一个自定义比较器,在其中编写了对数据进行排序的代码。 public class CustomComparator implements Comparator
这个问题已经有答案了: 已关闭10 年前。 Possible Duplicate: Java Generics: Cannot cast List to List? 我只是想知道为什么下面的java代
试图想出一个 LINQy 方法来做到这一点,但我什么也没想到。 我有一个对象列表<>,其中包含一个属性,该属性是逗号分隔的字母代码列表: lst[0].codes = "AA,BB,DD" lst[1
假设我有这些任务: points = [] point = (1, 2) 我怎么会这样做: points += point 它工作得很好,并且给了我点 = [1, 2]。但是,如果我这样做: poin
如何在 scala 中将 List[Task[List[Header]]] 类型转换为 Task[List[Header]]。 我有一个方法返回 Task[List[Header]] 并多次调用 do
如何在 Java 中查找二维列表的元素? 我有一个参数为 List> 的函数我想知道如何找到这个列表的行和列。 最佳答案 如果你喜欢 List> obj 然后你就可以像这样访问 obj.get(cur
分配 List到 List工作正常。 分配 List>到 List>不编译。 代码 public class Main { public static void main(String[] a
我正在用 Java 编写一个方法,该方法必须接收并迭代 Serializable 的 List。 有什么区别: public void myMethod(List list) { } 和 public
我看到很多人想用 mvvm 更新网格/列表/树的一部分,但他们不想刷新整个列表。 对于所有遇到此问题的人,我做了以下示例。 希望这对你有用。 最佳答案 这是一个简单的例子。整个代码中最重要的是: Bi
我正在为现有的 C++ 库编写包装器,该库使用列表,其中 T 是自定义结构。我被建议使用 vector 而不是列表,但我试图避免修改库。 为了更好地理解这个场景,我做了一个简单的应用程序,使用一个列表
List list List list 这两种声明有什么区别吗? 谢谢, 最佳答案 是的。 List可以包含所有派生自 Base 的不同事物的混合物. List包含同质项(从某种意义上说,它们必须全部
有人可以尽可能详细地解释以下类型之间的区别吗? List List List 让我更具体一点。我什么时候想使用 // 1 public void CanYouGiveMeAnAnswer(List l
我有一个元组列表,每个元组都是一对列表。所以我的数据看起来像: mylist = [(['foo', 'bar'], ['bar', 'bar']),(['bar', 'bar'],['bar', '
也许是一个时髦的标题,但我遇到了以下问题: 给定一个类型为 (a * b) list 的列表,我想创建一个类型为 (a * b list) list 的新列表。一个例子: 给定列表 let testL
我是一名优秀的程序员,十分优秀!