我有一个如下的数据框:
pop state year value1 value2 value3
0 1.8 Ohio 2000001 3 3 1
1 1.9 Ohio 2001001 3 3 1
2 3.9 Nevada 2002 3 3 1
3 2.9 Nevada 2001003 3 3 1
4 2.0 Nevada 2002004 3 3 1
我想将 df['year'] 切成 value1、value2、value3 中的三段。如果值不够长,我可以用0填充。 所以我想获取如下数据框:
pop state year value1 value2 value3
0 1.8 Ohio 2000001 200 000 1
1 1.9 Ohio 2001001 200 100 1
2 3.9 Nevada 2002 200 2 0
3 2.9 Nevada 2001003 200 100 3
4 2.0 Nevada 2002004 200 200 4
此外,如果 df['value1']、df['value2']、df['value3'] 具有不同的值。我该怎么做 python pandas ?
最佳答案
您可以将 year
转换为字符串值,后跟 str.extract
提取与 3 列中的值相对应的特定切片。
然后,您可以将空字符串替换为 0
以获取所需的结果。
In [3]: df['year'] = df['year'].astype(str)
In [4]: df.ix[:,3:6] = df['year'].str.extract('(?P<value1>\d{0,3})(?P<value2>\d{0,3})(?P<value3>\d{0,1})')
In [5]: df.replace('', 0, inplace=True)
In [6]: df
Out[6]:
pop state year value1 value2 value3
0 1.8 Ohio 2000001 200 000 1
1 1.9 Ohio 2001001 200 100 1
2 3.9 Nevada 2002 200 2 0
3 2.9 Nevada 2001003 200 100 3
4 2.0 Nevada 2002004 200 200 4
关于python - 如何在Python数据框中将一些值剪切到不同的列中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39032119/