我在pandas数据框中的某个列的类型有问题。基本上,该列以字符串形式保存在csv文件中,我想将其用作元组,以便能够将其转换为数字列表。接下来是一个非常简单的csv:
ID,LABELS
1,"(1.0,2.0,2.0,3.0,3.0,1.0,4.0)"
2,"(1.0,2.0,2.0,3.0,3.0,1.0,4.0)"
Run Code Online (Sandbox Code Playgroud)
如果使用“ read_csv”函数加载它,则会得到字符串列表。我试图转换为列表,但是得到了字符串的列表版本:
df.LABELS.apply(lambda x: list(x))
Run Code Online (Sandbox Code Playgroud)
返回:
['(','1','.','0',.,.,.,.,.,'4','.','0',')']
Run Code Online (Sandbox Code Playgroud)
关于如何做到这一点的任何想法?
谢谢。
我有一个关于 xgboost 和多类的问题。我没有使用 sklearn 包装器,因为我总是在某些参数上遇到困难。我想知道是否可以获得概率向量加上 softmax 输出。以下是我的代码:
param = {}
param['objective'] = 'multi:softmax'
param['booster'] = 'gbtree'
param['eta'] = 0.1
param['max_depth'] = 30
param['silent'] = 1
param['nthread'] = 4
param['num_round'] = 40
param['num_class'] = len(np.unique(label)) + 1
model = xgb.train(param, dtrain)
# predict
pred = model.predict(dtest)
Run Code Online (Sandbox Code Playgroud)
我希望能够调用类似的函数predict_proba,但我不知道是否可能。很多答案(例如:https: //datascience.stackexchange.com/questions/14527/xgboost-predict-probabilities)建议转向sklearn包装器,但是,我想继续使用正常的训练方法。
我有一个庞大的数据集,我想逐行阅读它。现在,我正在使用pandas读取数据集:
df = pd.read_csv("mydata.csv", sep =',', nrows = 1)
Run Code Online (Sandbox Code Playgroud)
此功能允许我只读了第一线,但我怎么能读取第二,第三个等等?(我想用熊猫。)
编辑:为了更清楚,我需要一次读取一行,因为数据集为20 GB,我无法将所有内容保留在内存中。
我已经使用 pandas 转换了一些 csv 文件。我注意到日期现在是十进制格式。但是,我不清楚如何转换为datetime或至少转换为时间戳。
所以转换后的日期看起来像:
42794.741667
Run Code Online (Sandbox Code Playgroud)
我知道小数点之前是从 1900 年开始的天数,但我没有找到任何有关小数点第二部分的信息。很多问题建议直接从read_excel转换:pandas自动转换date。但是,我不能这样做,因为 Excel 文件非常复杂并且没有预定义的结构。