我有一个看起来像这样的系列:
0 15022$33.24%15.0k
1 15022$9.31%4.2k
2 15022$8.19%3.7k
3 15022$8.17%3.7k
4 15022$7.57%3.4k
5 5746$12.71%5.7k
6 5083$11.25%5.1k
7 5027$11.12%5.0k
8 5027$6.13%2.8k
9 5027$4.99%2.3k
10 4601$10.18%4.6k
11 3771$8.34%3.8k
12 3089$6.83%3.1k
13 3089$4.95%2.2k
14 3089$1.88%850.0
15 1673$3.70%1.7k
16 1184$2.62%1.2k
17 1$0.00%1.0
Name: Amount, dtype: object
美元符号前的第一个数字是整数值,然后是百分比,最后是相同值的缩写形式。
我正在尝试将此Series放入一个DataFrame中,每个值都有自己的列(整数值,百分比和缩写形式)。
这是使用Google表格的DataFrame的示例解决方案:
0 Whole Percent Abbreviated num.
1 15022 33.24 15.0k
2 15022 9.31 4.2k
3 15022 8.19 3.7k
4 15022 8.17 3.7k
5 15022 7.57 3.4k
谢谢!
答案 0 :(得分:3)
不确定这是否理想,但请对每行进行拆分
s = pd.Series(index=[1,2,3],data=['15022$33.24%15.0k','15022$9.31%4.2k','15022$8.19%3.7k'], name='Amounts')
s.str.split('\$|%', expand=True)
你得到
0 1 2
1 15022 33.24 15.0k
2 15022 9.31 4.2k
3 15022 8.19 3.7k
它是一个数据框,重命名列。
答案 1 :(得分:3)
仅根据您显示的示例,您可以尝试以下内容吗?
import pandas as pd
import numpy as np
df=pd.Series(data=['15022$33.24%15.0k','15022$9.31%4.2k','15022$8.19%3.7k','15022$8.17%3.7k'], name='Amounts')
df=df.str.split('\$|%', expand=True)
df.columns = ["Whole","Percent","Abbreviated num."]
df.insert(0, "0", df.index+1, True)
df