gpt4 book ai didi

python - pandas 中数据的清理

转载 作者:行者123 更新时间:2023-11-30 21:59:19 25 4
gpt4 key购买 nike

我有一个以下格式的数据框:

 Col
Honda [edit]
Accord (4 models)[1]
Civic (4 models)[2]
Pilot (3 models)[1]
Toyota [edit]
Prius (4 models)[1]
Highlander (3 models)[4]
Ford [edit]
Explorer (2 models)[1]

我想要以下格式的数据:

  A         B
Honda Accord
Honda Civic
Honda Pilot
Toyota Prius
Toyota Highlander

最佳答案

为测试字符串创建 bool 掩码[edit] by str.contains ,然后使用第一个 ([> 按空格分割列,用 where 将不匹配的值替换为 NaN 并将缺失值转发到列A。函数 insert 用于将新列添加到第一个位置。最后通过 boolean indexing 删除两列中相同的值,并通过 reset_index 创建默认索引:

mask = df['Col'].str.contains('[edit]', regex=False)
df['B'] = df.pop('Col').str.split('\s+\(|\s+\[', n=1).str[0]
df.insert(0, 'A', df['B'].where(mask).ffill())
df = df[df['A'] != df['B']].reset_index(drop=True)
print (df)
A B
0 Honda Accord
1 Honda Civic
2 Honda Pilot
3 Toyota Prius
4 Toyota Highlander
5 Ford Explorer

另一个解决方案:

items = []
for x in df['Col']:
if x.endswith('[edit]'):
a = x.rstrip(' [edit]')
else:
b = x.split('(')[0].strip()
items.append((a, b))

df = pd.DataFrame(items, columns=['A', 'B'])
print (df)
A B
0 Honda Accord
1 Honda Civic
2 Honda Pilot
3 Toyota Prius
4 Toyota Highlander
5 For Explorer

关于python - pandas 中数据的清理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54617326/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com