Gus*_*sto 6 python multiple-columns pandas
我的 csv 文件中有一个列,其中包含一个元组作为值。例如一个值: 10.000 , 20.000
我的目标是拆分该列并用两个新列替换该列。
我已经尝试过以下操作:
brokerMktPrices["nameOfColumn"] = pd.DataFrame(brokerMktPrices["nameOfColumn"].str.split(' ',1).tolist(), columns = ['firstNewColumn','secondNewColumn'])
Run Code Online (Sandbox Code Playgroud)
但这会导致一列仅包含元组的第一个值(左侧值)。所以secondNewColumn
缺少了!
我还尝试了一些麻烦的事情,例如在数据框末尾添加两个新列,然后删除该nameOfColumn
列!但我认为必须有更好的解决方案来解决我的问题!
我认为如果值是元组你需要:
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
Run Code Online (Sandbox Code Playgroud)
如果值是字符串:
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
Run Code Online (Sandbox Code Playgroud)
最后分配给新列:
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
Run Code Online (Sandbox Code Playgroud)