小编00_*_*_00的帖子

如何检查float pandas列是否只包含整数?

我有一个数据帧

df = pd.DataFrame(data=np.arange(10),columns=['v']).astype(float)
Run Code Online (Sandbox Code Playgroud)

如何确保数字v是整数?我非常关心舍入/截断/浮点表示错误

python floating-point precision pandas

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

如何将列添加到空的pandas数据帧?

我有一个空的dataframe.

df=pd.DataFrame(columns=['a'])
Run Code Online (Sandbox Code Playgroud)

由于某种原因,我想生成df2,另一个空数据帧,有两列'a'和'b'.

如果我做

df.columns=df.columns+'b'
Run Code Online (Sandbox Code Playgroud)

它不起作用(我将列重命名为'ab')并且以下都没有

df.columns=df.columns.tolist()+['b']
Run Code Online (Sandbox Code Playgroud)

如何在df中添加单独的列'b',并df.emtpy继续保持True

使用.loc也是不可能的

   df.loc[:,'b']=None
Run Code Online (Sandbox Code Playgroud)

因为它返回

  Cannot set dataframe with no defined index and a scalar
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas

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

将pandas数据帧转换为numpy数组 - 哪种方法更适合?

我需要将大型数据帧转换为numpy数组.仅保留数值和类型.我知道有很好的记录方法可以这样做.

那么,哪一个更喜欢?

df.values
df._as_matrix()
pd.to_numeric(df)
... others ...
Run Code Online (Sandbox Code Playgroud)

决策因素:

  • 效率

  • 安全地操作nan,np.nans和其他可能的意外值

  • 数值稳定

python numpy pandas

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

在熊猫中找到间隔的交集

我有两个数据帧

df_a=

     Start Stop Value
    0  0     100  0.0
    1  101   200  1.0
    2  201  1000  0.0

df_b=
       Start Stop Value
    0  0     50 0.0
    1  51   300 1.0
    2  301 1000  0.0
Run Code Online (Sandbox Code Playgroud)

我想生成一个DataFrame包含由Startand 标识的区间Stop,其中Value df_a与df_b 相同.对于每一个间隔,我想存储:如果Value是相同的,并且这是在值df_adf_b.期望的输出:

df_out=
  Start Stop SameValue Value_dfA Value_dfB
      0    50    1          0       0
      51   100   0          0       1
      101  200   1          1       1
      201  300   0          0       1
    [...]
Run Code Online (Sandbox Code Playgroud)

python merge pandas

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

确定从哪个文件中定义了一个函数在 python 中

我正在以编程方式打印出 python 中的函数列表。我可以从名字中得到名字

for ifunc,func in enumerate(list_of_functions):
    print(str(ifunc)+func.__name__)
Run Code Online (Sandbox Code Playgroud)

如何获取定义函数的源文件名?

如果函数是对象的属性,如何获取父对象的类型?


可移植性python2/3是必须的

python function introspection

7
推荐指数
2
解决办法
3537
查看次数

使用 pandas.to_excel 时格式化 timedelta64

我正在使用以下命令写入 excel 文件ExcelWriter

writer = pd.ExcelWriter(fn,datetime_format=' d  hh:mm:ss')
df.to_excel(writer,sheet_name='FOO')
Run Code Online (Sandbox Code Playgroud)

写入操作成功,打开相应的excel文件,我看到日期时间按照要求格式很好。但是,带有 dtype 的数据框的另一列timedelta64[ns]会自动转换为数值,因此在 Python 中我看到

0 days 00:23:33.499998
Run Code Online (Sandbox Code Playgroud)

在 excel 中:

 0.016359954
Run Code Online (Sandbox Code Playgroud)

这可能与以天数换算的持续时间相同。有什么方法可以使用控制 timedelta 格式pd.ExcelWriter?

python timedelta pandas

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

将额外参数传递给 sklearn 管道中的自定义评分函数

我需要在 sklearn 中使用自定义分数执行单变量特征选择,因此我使用 GenericUnivariateSelect。然而,正如文档中所示,

\n\n

选择器的模式:{\xe2\x80\x98percentile\xe2\x80\x99,\xe2\x80\x98k_best\xe2\x80\x99,\xe2\x80\x98fpr\xe2\x80\x99,\xe2\x80\x98fdr \xe2\x80\x99,\xe2\x80\x98fwe\xe2\x80\x99}

\n\n

就我而言,我需要选择分数高于特定值的特征,因此我实现了:

\n\n
from sklearn.feature_selection.univariate_selection import _clean_nans\nfrom sklearn.feature_selection.univariate_selection import f_classif                        \nimport numpy as np\nimport pandas as pd\nfrom  sklearn.feature_selection import GenericUnivariateSelect\nfrom sklearn.metrics import make_scorer \nfrom sklearn.feature_selection.univariate_selection import _BaseFilter\nfrom sklearn.pipeline import Pipeline \n\n\n\nclass SelectMinScore(_BaseFilter):\n    # Sklearn documentation: modes for selectors : {\xe2\x80\x98percentile\xe2\x80\x99,     \xe2\x80\x98k_best\xe2\x80\x99, \xe2\x80\x98fpr\xe2\x80\x99, \xe2\x80\x98fdr\xe2\x80\x99, \xe2\x80\x98fwe\xe2\x80\x99}\n    # custom selector: \n    # select features according to the k highest scores.\n    def __init__(self, score_func=f_classif, minScore=0.7):\n        super(SelectMinScore, self).__init__(score_func)\n        self.minScore = minScore\n        self.score_func=score_func\n    [...]\n    def _get_support_mask(self):\n        check_is_fitted(self, \'scores_\')\n\n        if …
Run Code Online (Sandbox Code Playgroud)

python pipeline scikit-learn

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

获取布尔数组中至少n个连续False值的第一个块的索引

我有一个numpy布尔数组

w=np.array([True,False,True,True,False,False,False])
Run Code Online (Sandbox Code Playgroud)

我想得到第一次有n_at_least假值的索引.比如这里

`n_at_least`=1 -> desired_index=1

`n_at_least`=3 -> desired_index=4
Run Code Online (Sandbox Code Playgroud)

我试过了

np.cumsum(~w)
Run Code Online (Sandbox Code Playgroud)

每次False遇到值时都会增加.但是,当True遇到计数器时,计数器不会再次从0开始,所以我只得到False元素的总数而不是最后连续的计数.

python boolean numpy cumsum

6
推荐指数
2
解决办法
251
查看次数

在pandas.merge_asof之后保留两个合并键

我发现了这个不错的功能 pandas.merge_asof。从文档中

pandas.merge_asof(left, right, on=None, left_on=None, right_on=None)

Parameters: 

left : DataFrame
right : DataFrame
on : label

Field name to join on. Must be found in both DataFrames.
The data MUST be ordered. 
Furthermore this must be a numeric column,such as datetimelike, integer, or float. 
On or left_on/right_on must be given.
Run Code Online (Sandbox Code Playgroud)

并且它按预期工作。

但是,我合并的数据框on仅将原来所在的数据框保留为列left。我需要将它们都保留下来

   mydf=pandas.merge_asof(left, right, on='Time')
Run Code Online (Sandbox Code Playgroud)

mydf同时包含Timeleftright

示例数据:

a=pd.DataFrame(data=pd.date_range('20100201', periods=100, freq='6h3min'),columns=['Time'])
b=pd.DataFrame(data=
                  pd.date_range('20100201', periods=24, freq='1h'),columns=['Time'])
b['val']=range(b.shape[0])
out=pd.merge_asof(a,b,on='Time',direction='forward',tolerance=pd.Timedelta('30min'))
Run Code Online (Sandbox Code Playgroud)

python merge pandas

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

创建 conda 环境时忽略丢失的通道

我正在创建一个 conda 环境:

conda env export --name root > myEnv.yml
Run Code Online (Sandbox Code Playgroud)

我在文件中手动将“root”替换为“myEnv”。这是在共享机器上完成的。然后我移动到另一个系统,我这样做:

conda env create -f myEnv.yml

name: my_env
channels:
file://somewhere//
otherpublicrepos
Run Code Online (Sandbox Code Playgroud)

不幸的是,在文件中有一个私人频道,我不得不将其删除

现在我(一个接一个)从 file:// 中的那些丢失的包错误中得到了很多,我必须手动从文件中删除它们。

如何仅安装公共存储库中可用的内容但最终创建环境?


-q 选项没有帮助,conda create输出

ResolvePackageNotFound:   - ALIB 3.2.1 1
Run Code Online (Sandbox Code Playgroud)

并在不创造环境的情况下默默返回

python persistence virtualenv anaconda conda

5
推荐指数
0
解决办法
932
查看次数