小编Roc*_*etq的帖子

如何在创建Excel文件时正确设置列宽?(列属性)

我正在使用标准库

using Excel = Microsoft.Office.Interop.Excel;
Run Code Online (Sandbox Code Playgroud)

这就是我创建Excel的方式,只是代码的一小部分:

//Excel.Application xlApp;
Excel.Workbook xlWorkBook;
Excel.Worksheet xlWorkSheet;
object misValue = System.Reflection.Missing.Value;
Excel._Application xlApp = new Excel.Application();

xlWorkBook = xlApp.Workbooks.Add(misValue);
xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);

//add data 
xlWorkSheet.Cells[1, 1] = "";
xlWorkSheet.Cells[1, 2] = "Student1";
xlWorkSheet.Cells[1, 3] = "Student2";
xlWorkSheet.Cells[1, 4] = "Student3";
Run Code Online (Sandbox Code Playgroud)

问题是,有时单元格的大小可能小于文本大小.我试过这个:

Excel.Range chartRange;
chartRange.EntireColumn.ColumnWidth = 31.43;
Run Code Online (Sandbox Code Playgroud)

它工作正常,但我需要分别为每个列设置此属性.我怎么能这样做?

c# excel office-interop

19
推荐指数
3
解决办法
8万
查看次数

如何在WPF中使用Application.Exit事件?

我需要删除一些某些文件,然后用户关闭WPF中的程序.所以我从这里尝试了MDSN代码http://msdn.microsoft.com/en-us/library/system.windows.application.exit.aspx这样:

此代码位于此处 App.xml.cs

public partial class App : Application
{
 void App_Exit(object sender, ExitEventArgs e)
    {
       MessageBox.Show("File deleted");
        var systemPath = System.Environment.GetFolderPath(
                                  Environment.SpecialFolder.CommonApplicationData);

                var _directoryName1 = Path.Combine(systemPath, "RadiolocationQ");
                var temp_file = Path.Combine(_directoryName1, "temp.ini");

                if (File.Exists(temp1_file))
                {
                    File.Delete(temp1_file);
                }

    }

}

// App.xaml
<Application x:Class="ModernUIApp1.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             StartupUri="MainWindow.xaml"
             ShutdownMode="OnExplicitShutdown"
             Exit="App_Exit">
    <Application.Resources>
Run Code Online (Sandbox Code Playgroud)

首先它不删除文件,其次这个程序在我按下退出按钮后停留在这个过程中(这真的很奇怪).此代码不会给出任何错误.最后它没有表明MessageBox这里有什么不对吗?

我认为他无法找到这个功能.

c# wpf events exit

16
推荐指数
4
解决办法
5万
查看次数

如何从sql查询中提取表名和列名?

所以假设我们有这样一个简单的查询:

Select a.col1, b.col2 from tb1 as a inner join tb2 as b on tb1.col7 = tb2.col8;
Run Code Online (Sandbox Code Playgroud)

结果应该是这样的:

tb1 col1
tb1 col7
tb2 col2
tb2 col8
Run Code Online (Sandbox Code Playgroud)

我尝试使用一些 python 库来解决这个问题:

1) 即使只使用提取表sqlparse也可能是一个大问题。例如,这本官方书籍根本无法正常工作。

2)使用正则表达式似乎真的很难实现。

3)但后来我发现了这个,这可能会有所帮助。但是问题是我无法连接到任何数据库并执行该查询。

有任何想法吗?

python regex sql sqlite parsing

16
推荐指数
4
解决办法
3万
查看次数

重载运算符时出错(必须是非静态成员函数)

我正在自己编写字符串类.我有这样的代码.我只想超载operator=.这是我的实际代码,我在代码的最后部分得到错误.

#include <iostream>
#include <string.h>
#include <stdlib.h>

using namespace std;

class S {
    public:
        S();
        ~S() { delete []string;}
        S &operator =(const S &s);

    private:
        char *string;
        int l;
};

S::S()
{
    l = 0;
    string = new char[1];
    string[0]='\0';
}

S &operator=(const S &s)
{
    if (this != &s)
    {
        delete []string;
        string = new char[s.l+1];
        memcpy(string,s.string,s.l+1);
        return *this;
    }
    return *this;
}
Run Code Online (Sandbox Code Playgroud)

但不幸的是我收到错误'S&operator =(const S&)'必须是非静态成员函数.

c++ operator-overloading

13
推荐指数
2
解决办法
3万
查看次数

Pandas Concat 增加行数

我正在连接两个数据帧,所以我希望一个数据帧位于另一个数据帧。但首先我对初始数据框做了一些转换:

scaler = MinMaxScaler() 
real_data = pd.DataFrame(scaler.fit_transform(df[real_columns]), columns = real_columns)
Run Code Online (Sandbox Code Playgroud)

然后连接:

categorial_data  = pd.get_dummies(df[categor_columns], prefix_sep= '__')
train = pd.concat([real_data, categorial_data], axis=1, ignore_index=True)
Run Code Online (Sandbox Code Playgroud)

我不知道为什么,但行数增加了:

print(df.shape, real_data.shape, categorial_data.shape, train.shape)
(1700645, 23) (1700645, 16) (1700645, 130) (1703915, 146)
Run Code Online (Sandbox Code Playgroud)

发生了什么以及如何解决问题?

如您所见,train 的列数等于 real_data 和 categorial_data 列的总和

python concat python-3.x pandas

11
推荐指数
2
解决办法
8352
查看次数

如何释放所有内存pytorch来自gpu内存

我有某种高级代码,因此模型训练等由pipeline_network课程来包装。我的主要目标是每折一次训练新模型。

for train_idx, valid_idx in cv.split(meta_train[DEPTH_COLUMN].values.reshape(-1)):

        meta_train_split, meta_valid_split = meta_train.iloc[train_idx], meta_train.iloc[valid_idx]

        pipeline_network = unet(config=CONFIG, suffix = 'fold' + str(fold), train_mode=True)
Run Code Online (Sandbox Code Playgroud)

但是然后我继续进行第二次折叠,所有故障都出自gpu内存:

RuntimeError: cuda runtime error (2) : out of memory at /pytorch/torch/lib/THC/generic/THCStorage.cu:58
Run Code Online (Sandbox Code Playgroud)

在纪元结束时,我尝试手动删除该管道,但没有运气:

 def clean_object_from_memory(obj): #definition
    del obj
    gc.collect()
    torch.cuda.empty_cache()

clean_object_from_memory( clean_object_from_memory) # calling
Run Code Online (Sandbox Code Playgroud)

调用它也没有帮助:

def dump_tensors(gpu_only=True):
        torch.cuda.empty_cache()
        total_size = 0
        for obj in gc.get_objects():
            try:
                if torch.is_tensor(obj):
                    if not gpu_only or obj.is_cuda:
                        del obj
                        gc.collect()
                elif hasattr(obj, "data") and torch.is_tensor(obj.data):
                    if not gpu_only or obj.is_cuda:
                        del obj …
Run Code Online (Sandbox Code Playgroud)

python gpu out-of-memory python-3.x pytorch

10
推荐指数
1
解决办法
2563
查看次数

xgboost:AttributeError:'DMatrix'对象没有属性'handle'

这个问题真的很奇怪,因为这件事对其他数据集来说效果很好.

完整代码:

import numpy as np
import pandas as pd
import xgboost as xgb
from sklearn.cross_validation import train_test_split

# # Split the Learning Set
X_fit, X_eval, y_fit, y_eval= train_test_split(
    train, target, test_size=0.2, random_state=1
)

clf = xgb.XGBClassifier(missing=np.nan, max_depth=6, 
                        n_estimators=5, learning_rate=0.15, 
                        subsample=1, colsample_bytree=0.9, seed=1400)

# fitting
clf.fit(X_fit, y_fit, early_stopping_rounds=50, eval_metric="logloss", eval_set=[(X_eval, y_eval)])
#print y_pred
y_pred= clf.predict_proba(test)[:,1]
Run Code Online (Sandbox Code Playgroud)

最后一行导致下面的错误(提供完整输出):

Will train until validation_0 error hasn't decreased in 50 rounds.
[0] validation_0-logloss:0.554366
[1] validation_0-logloss:0.451454
[2] validation_0-logloss:0.372142
[3] validation_0-logloss:0.309450
[4] validation_0-logloss:0.259002
Traceback (most recent call …
Run Code Online (Sandbox Code Playgroud)

python machine-learning python-3.x xgboost kaggle

9
推荐指数
1
解决办法
2万
查看次数

ValueError:您必须指定频率或x必须是带有时间序列索引的pandas对象

我以这种方式获得了时间序列数据:

from pandas.io.data import DataReader
from datetime import datetime
ts_log = DataReader('RUB=X',  'yahoo', datetime(2007,1,1), datetime(2016,8,30))["Adj Close"]
Run Code Online (Sandbox Code Playgroud)

ts_log看起来是这样的:

Date
2007-01-01    3.269759
2007-01-02    3.269759
2007-01-03    3.270519
  .....        ......
Run Code Online (Sandbox Code Playgroud)

然后,我想使用statsmodels进行分解:

from statsmodels.tsa.seasonal import seasonal_decompose
decomposition = seasonal_decompose(ts_log)
Run Code Online (Sandbox Code Playgroud)

ValueError:您必须指定频率或x必须是带有时间序列索引的pandas对象

为了解决这个问题,我尝试了两种方法:

1)这行不通,因为并非每天都有价值:

ts_log = pd.DataFrame(data=ts_log.values, index=pd.date_range(start=datetime(2007, 1, 1), 
                                                              end = datetime(2016,8,30), freq='D'), columns=['usd/rub'])
Run Code Online (Sandbox Code Playgroud)

2)我认为将索引转换为datetime应该可以,但是不能:

ts_log = pd.DataFrame(data=ts_log.values, index=pd.to_datetime(ts_log.index), columns=['usd/rub'])

完全一样的错误。

我该如何使工作正常?

PS该代码非常好,但是我有一些不同的数据,无论如何它应该可以帮助您了解这个想法:

length = 400
x = np.sin(np.arange(length)) * 10 + np.random.randn(length)
df = pd.DataFrame(data=x, index=pd.date_range(start=datetime(2015, 1, 1), periods=length, freq='w'), columns=['value'])
decomposition = seasonal_decompose(df)
Run Code Online (Sandbox Code Playgroud)

python datetime python-2.7 pandas statsmodels

8
推荐指数
0
解决办法
9810
查看次数

Python:sqlite没有找到与sqlite匹配的分布

我试图通过控制台中的pip安装该库。我正在使用win7和python v.2.7.10。但未能实现。Acording到 -它可用于我的Python版本了。

我尝试通过几种方式进行安装:

点安装sqlite

点安装sqlite3

点安装sqlite-devel

怎么了

    Full error: Could not find a version that satisfies the requirement(). 
No matching distribution found for ...
Run Code Online (Sandbox Code Playgroud)

python sqlite pip python-2.7

7
推荐指数
1
解决办法
1万
查看次数

通过索引访问 coo_matrix 时出现类型错误

我有 coo_matrixX和索引trn_idx,我想通过它们访问该 maxtrix

print (type(X  ), X.shape)
print (type(trn_idx), trn_idx.shape)

<class 'scipy.sparse.coo.coo_matrix'> (1503424, 2795253)
<class 'numpy.ndarray'> (1202739,)
Run Code Online (Sandbox Code Playgroud)

这样调用:

X[trn_idx]
TypeError: only integer scalar arrays can be converted to a scalar index
Run Code Online (Sandbox Code Playgroud)

无论是这样:

 X[trn_idx.astype(int)] #same error
Run Code Online (Sandbox Code Playgroud)

如何通过索引访问?

python numpy scipy sparse-matrix python-3.x

6
推荐指数
1
解决办法
4453
查看次数