这里是Python/熊猫新手。我尝试使用的csv文件已填充了如下数据:
A B C D
Option1(item1=12345, item12='string', item345=0.123) 2020-03-16 1.234 Option2(item4=123, item56=234, item678=345)
我希望它看起来像这样:
item1 item12 item345 B C item4 item56 item678
12345 'string' 0.123 2020-03-16 1.234 123 234 345
换言之,我想用以等号左边的内容为首的新列替换A列和D列,使用等号右边的内容作为相应的值,并去掉Option1()和Option2()部分以及逗号。不包含函数的列应保持原样
有没有一种优雅的方法可以做到这一点
事实上,在这一点上,我会满足于任何旧的方式,优雅与否;我已经找到了处理这种情况的各种方法,比如说,如果有dicts填充列,但是如果有函数存在,没有什么可以帮助我区分它。尝试搜索答案只会给我一系列关于如何将函数应用于数据帧的结果
只要你的函数总是有相同的参数,这应该是可行的
您可以使用以下选项阅读csv(如果分隔符是2个或更多空格,这是我粘贴问题示例时得到的):
如果您的数据帧为
df
:关于regex{}的一些说明有两个捕获组(每个部分在parens中):
组1
([\w\d]+)
是一个或多个字符(+
),它们是单词字符\w
或数字\d
组间的
=
第2组
([^,\)]*)
是0个或多个字符(*
),它们不是(^
)逗号,
或括号\)
我相信你正在寻找以下线索:
输出:
显然,您可以删除不需要的列、更改名称等
相关问题 更多 >
编程相关推荐