首页 > 解决方案 > 熊猫将字符串数组转换为具有混合数据类型的数据框

问题描述

我有以下字符串数组:

["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 应该是浮点数。

标签: pythonpandasdataframe

解决方案


我尝试\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

推荐阅读