熊猫将字符串数组转换为具有混合数据类型的数据框

时间:2020-10-15 01:36:12

标签: python pandas dataframe

我有以下字符串数组:

["12/21/2012 16:00:00 7.40",
"2/24/2012 13:00:00 2.21",
"10/26/2012 16:00:00 87.20",
....]

日期和浮点值用制表符分隔。如何将其转换为数据帧并将其数据转换为各自的类型?因此,col1应该是日期,而col2应该是浮点数。

1 个答案:

答案 0 :(得分:0)

我尝试执行\t以根据制表符进行拆分。但是,字符串中的数据为空格。所以这就是我分解的方式。

x = ["12/21/2012 16:00:00   7.40",
     "2/24/2012 13:00:00    2.21",
     "10/26/2012 16:00:00   87.20"]

y = [[" ".join(i.split()[:2]),float(i.split()[2])] for i in x]
print (y)

这将给我最终的清单如下:

[['12/21/2012 16:00:00', 7.4], ['2/24/2012 13:00:00', 2.21], ['10/26/2012 16:00:00', 87.2]]

以此,您可以将其转换为DataFrame。

以下是DataFrame的完整代码:

import pandas as pd
x = ["12/21/2012 16:00:00   7.40",
     "2/24/2012 13:00:00    2.21",
     "10/26/2012 16:00:00   87.20"]

z = [[" ".join(i.split()[:2]),float(i.split()[2])] for i in x]
df = pd.DataFrame(z,columns=['Date','Val'])
print(df)

DataFrame的输出为:

                  Date    Val
0  12/21/2012 16:00:00   7.40
1   2/24/2012 13:00:00   2.21
2  10/26/2012 16:00:00  87.20