python - 检索 Panda Dataframe 列中列表的最后一个元素

标签 python pandas dataframe

我有这个 csv 文件示例:(读作 AAA 项目成本 1000,项目 AAA(1) 成本 2000)

ColumnName
AAA (1000)
AAA (1) (2000)

我想创建一个包含所有数字的 pandas dataframe 列

Column_cost
1000
2000

我试图用“(”拆分它,它返回类似下面的内容(因为第二个项目的名称中有“(”:

Result 1
Col_1 Col_2 Col_3

AAA 1000) None

AAA   1)  2000)  

所以数字不在同一列

然后我尝试创建一列列表,它给出

Result 2

ColumnName2

[AAA,1000)]

[AAA,1),2000)]

但同样,我不知道如何创建一个使用每个列表的最后一个元素的列。

我可以为特定索引获取它,但不能为整个列获取它

x = df['ColumnName'].str.split('(',expand=True) gives Result 1 above

x = df['ColumnName'].str.split('(') gives Result 2 above

根据结果 2,我执行了以下操作以获得一个特定单元格的所需结果,但我不知道如何为整个列执行此操作(我可以为小型数据集执行此操作,但不能为大型数据集执行此操作一)

检索特定索引的列表,获取列表的最后一个元素,将其按空格拆分,然后检索拆分列表的新元素

x[0][-1].split()[0]
x[1][-1].split()[0]

最佳答案

另一种使用 Series.str.split 的解决方案, str.stripastype :

df['Column_cost'] = df.ColumnName.str.split('(').str[-1].str.strip(')').astype(int)

[输出]

       ColumnName  Column_cost
0      AAA (1000)         1000
1  AAA (1) (2000)         2000

关于python - 检索 Panda Dataframe 列中列表的最后一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56324232/

相关文章:

python - 如何在多标题/多索引 pandas Dataframe 中设置单元格值

python - Pandas ,如何避免使用 iterrow(如何根据另一个数据框中的值将值分配给数据框中的新列)

python - Pandas 比较列表的列

python - DataFrame.替换为嵌套字典

python - 为什么加载 pickle 对象比加载文件花费的时间长得多?

python - Django基于最新相关模型字段的过滤器

python - 在 Django REST ListAPI View 中对原始 SQL 查询进行分页的最佳方法?

python - 在每行中填充第一个 NaN

python - Pandas :获取数据帧中对角线下方的元素(索引,列)

python - 如何在 python Django 框架中只执行一个进程的运行实例?