Pandas:将数据框中的列替换为两列

时间:2018-01-09 12:35:13

标签: python pandas multiple-columns

我的csv文件中有一个列,其中包含一个元组作为值。 例如。一个值:10.000,20.000

我的目标是通过两个新列拆分和替换列。

我已经尝试了以下内容:

brokerMktPrices["nameOfColumn"] = pd.DataFrame(brokerMktPrices["nameOfColumn"].str.split(' ',1).tolist(), columns = ['firstNewColumn','secondNewColumn'])

但这会导致一个列只包含元组的第一个值(左值)。所以secondNewColumn丢失了!

我还尝试了一些繁琐的工作,例如在数据框末尾添加两个新列,然后删除nameOfColumn列!但我认为必须有一个更好的解决方案来解决我的问题!

1 个答案:

答案 0 :(得分:2)

如果值是元组,我认为你需要:

brokerMktPrices = pd.DataFrame({'nameOfColumn':[(10.000 , 20.000),(10.000 , 20.000)]})
print (brokerMktPrices)
   nameOfColumn
0  (10.0, 20.0)
1  (10.0, 20.0)

df = pd.DataFrame(brokerMktPrices["nameOfColumn"].values.tolist())
print (df)
      0     1
0  10.0  20.0
1  10.0  20.0

如果值是字符串:

brokerMktPrices = pd.DataFrame({'nameOfColumn':['10.000 , 20.00','10.000 , 20.000']})

df = brokerMktPrices["nameOfColumn"].str.split('\s+,\s+', expand=True)
print (df)
        0       1
0  10.000   20.00
1  10.000  20.000

并最后分配给新列:

brokerMktPrices[["c", "b"]] = df
print (brokerMktPrices)
      nameOfColumn       c       b
0   10.000 , 20.00  10.000   20.00
1  10.000 , 20.000  10.000  20.000