如何使用Python Pandas将一个用整数和字符串的混合值和字符串的混合值拆分为两个不同的列

发布于 2025-01-30 02:01:14 字数 718 浏览 3 评论 0 原文

标头A 标头B
测试 A
test1 b
test2 1
test3 E
test4 2

进入

标头A 标头C 头d
测试 A NAN
TEST1 B NAN
NAN TEST2 TEST2 NAN 1
test3 E NAN
TEST4 TEST4 NAN 2

简而如表中所示。使用熊猫

HEADER A header B
test A
test1 B
test2 1
test3 E
test4 2

INTO

HEADER A header c header d
test A Nan
test1 B Nan
test2 Nan 1
test3 E Nan
test4 Nan 2

In short i want to split header B INTO header c and header d as shown in the table. Using pandas

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

望她远 2025-02-06 02:01:14

您可以使用 pandas.series.series.str。 isnumeric 然后使用 series.mask

df['header c'] = df['header B'].mask(df['header B'].str.isnumeric(), np.nan)
df['header d'] = df['header B'].where(df['header B'].str.isnumeric(), np.nan)
print(df)

  HEADER A header B header c header d
0     test        A        A      NaN
1    test1        B        B      NaN
2    test2        1      NaN        1
3    test3        E        E      NaN
4    test4        2      NaN        2

You can use pandas.Series.str.isnumeric then with Series.mask

df['header c'] = df['header B'].mask(df['header B'].str.isnumeric(), np.nan)
df['header d'] = df['header B'].where(df['header B'].str.isnumeric(), np.nan)
print(df)

  HEADER A header B header c header d
0     test        A        A      NaN
1    test1        B        B      NaN
2    test2        1      NaN        1
3    test3        E        E      NaN
4    test4        2      NaN        2
趁年轻赶紧闹 2025-02-06 02:01:14

如果您有字符串,请使用

df[['header c', 'header b']] = df['header B'].str.extract(r'^(\D+)|(\d+)

输出:

  HEADER A  header B header c header b
0     test         A        A      NaN
1    test1         B        B      NaN
2    test2         1      NaN        1
3    test3         E        E      NaN
4    test4         2      NaN        2
)

输出:


If you have strings, use str.extract:

df[['header c', 'header b']] = df['header B'].str.extract(r'^(\D+)|(\d+)

output:

  HEADER A  header B header c header b
0     test         A        A      NaN
1    test1         B        B      NaN
2    test2         1      NaN        1
3    test3         E        E      NaN
4    test4         2      NaN        2
)

output:



    
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文