python - 如何在Python数据框中将一些值剪切到不同的列中?

标签 python pandas dataframe

我有一个如下的数据框:

       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/

相关文章:

python - Django View 可以接收列表作为参数吗?

python - 当我打乱一个 DataFrame 的副本时,为什么原始 DataFrame 也打乱了?

python - 如何删除数据框中某些完整率较低的特征(Python)

python - 重新扩展 groupby 数据 Pandas

python - 每个月在 Pandas 中返回最后一个日期和值

R Dataframe 重组和总结

python - 如何根据字符拆分列并在每次拆分时附加其余列

python - 在 Keras Tensorflow 中将 TimeseriesGenerator 与多元数据集结合使用

绘制函数图的 Python 函数

python - GUnicorn 提供的 Flask-sockets 并发连接问题