我的csv文件中有一个列,其中包含一个元组作为值。 例如。一个值:10.000,20.000
我的目标是通过两个新列拆分和替换列。
我已经尝试了以下内容:
brokerMktPrices["nameOfColumn"] = pd.DataFrame(brokerMktPrices["nameOfColumn"].str.split(' ',1).tolist(), columns = ['firstNewColumn','secondNewColumn'])
但这会导致一个列只包含元组的第一个值(左值)。所以secondNewColumn
丢失了!
我还尝试了一些繁琐的工作,例如在数据框末尾添加两个新列,然后删除nameOfColumn
列!但我认为必须有一个更好的解决方案来解决我的问题!
答案 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