我有一个像这样的数据框
name col1 col2
a aa 123
a bb 123
b aa 234
Run Code Online (Sandbox Code Playgroud)
和一个清单
[1, 2, 3]
Run Code Online (Sandbox Code Playgroud)
我想用 col1 = 'aa' 替换每行的 col2 ,列表如下
name col1 col2
a aa [1, 2, 3]
a bb 123
b aa [1, 2, 3]
Run Code Online (Sandbox Code Playgroud)
我尝试过类似的东西
df.loc[df[col1] == 'aa', col2] = [1, 2, 3]
Run Code Online (Sandbox Code Playgroud)
但它给了我错误:
name col1 col2
a aa 123
a bb 123
b aa 234
Run Code Online (Sandbox Code Playgroud)
我应该如何解决这个问题?
我正在尝试提取某些字符串的某些部分。这些字符串看起来像
a = "1_2_3"
b = "1_2_3_4"
Run Code Online (Sandbox Code Playgroud)
我想获取最后一个下划线之前每个字符串的所有内容:
"1_2"
"1_2_3"
Run Code Online (Sandbox Code Playgroud)
我认为这条线应该有效:
"_".join(a.split("_")[:-1])
"_".join(b.split("_")[:-1])
Run Code Online (Sandbox Code Playgroud)
但它给了我错误: AttributeError: 'str' object has no attribute 'joint'
然而,显然,a.split("_")[:-1]这不是一个 str 而是一个列表(我通过检查type(a.split("_")[:-1]))。有谁知道为什么会发生这种情况以及如何解决它?