gpt4 book ai didi

python - Pandas 中的简单列分割

转载 作者:太空宇宙 更新时间:2023-11-03 18:38:31 24 4
gpt4 key购买 nike

我在 CSV 中有这样的内容:

 phone                            name     area
(444) 444-4444, (000) 000-0000 Foo cityname, ST
(555) 555-5555 Bar othercity, SN

我如何最简单地实现这一点:

 phone            name     area       State
(444) 444-4444 Foo cityname ST
(555) 555-5555 Bar othercity SN

这是两个基本拆分 - 在第一个中,我想删除 ['phone'] 中第一个索引之后的所有内容,但在第二个中,我想将 ['area'] 中逗号后面的所有内容添加到['State'] - 我认为学习这两种方法会很棒。

在实际文件中,CSV 用逗号分隔,字段使用引号:它是标准 CSV。我使用空白表格来显示问题。

最佳答案

import pandas as pd
#df = pd.read_csv('file.csv', dtype={'area': str, 'phone': str})
df=pd.DataFrame(columns=['phone','name','area'],
data=[['(444) 444-4444, (000) 000-0000', 'Foo', 'cityname, ST'],
['(555) 555-5555', 'Bar', 'othercity, SN']])
print df
df['State'] = df.area.apply(lambda x: x.split(',')[1] if len(x.split(','))>1 else '')
df.area = df.area.apply(lambda x: x.split(',')[0])
df.phone = df.phone.apply(lambda x: x.split(',')[0])
print df

输出:

                            phone name           area
0 (444) 444-4444, (000) 000-0000 Foo cityname, ST
1 (555) 555-5555 Bar othercity, SN
phone name area State
0 (444) 444-4444 Foo cityname ST
1 (555) 555-5555 Bar othercity SN

关于python - Pandas 中的简单列分割,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21081045/

24 4 0
文章推荐: emacs - common lisp 和 emacs lisp 之间的结构区别
文章推荐: HTML