我有一个没有包含信息字符串的列标题的数据框。我想根据每个单元格中的子字符串选择单元格中的部分值,并将这些元素包含在列表中。我发现列出答案的示例引用了数据帧中的单个(命名)列,并且可以轻松地应用 loc/iloc 来获取数据帧的 str 属性
数据框如下所示:
0 A[3,5] A[6,7] C[3,9]
1 B[2,9] A[2,1] B[3,7]
2 B[5,6]
Run Code Online (Sandbox Code Playgroud)
从数据框中,我想提取括号中包含的所有坐标,这些坐标在列表中列为 A (作为字符串)。结果列表应该是:
[3,5, 6,7, 2,1]
Run Code Online (Sandbox Code Playgroud)
我已从 csv 读取数据并将其包含在数据框中。我尝试了两种方法:首先,构建一个具有相同维度的数据框,并在存在字母 A 的地方用 1 填充它。
其次,我试图在数据框中找到字符串“A”出现的位置,并一次性提取括号之间的部分。在这两种方法中,我都试图使用 loc/iloc 来引用数据帧的列,但得到一个AttributeError: 'DataFrame' object has no attribute 'str'
. 我的思考方式是否正确,或者是否有更有效的方式来解决我的问题?
更新:我已经能够将数据帧堆叠成一个系列,并且只剩下包含“A”的值。现在我希望根据括号之间的子字符串来隔离坐标。下面代码的最后一行产生了一个TypeError: 'Series' objects are mutable, thus they cannot be hashed
. 如何检索括号中的子字符串?
df = pd.read_csv("FILE.csv", header = None)
df = df.fillna('')
s = df.stack()
s = s[s.str.contains("A")]
s = s[s.str.find("["):s.str.rfind("]")]
Run Code Online (Sandbox Code Playgroud)