小编Tox*_*Tox的帖子

转换多个分类列

在我的数据集中,我想列举两个分类列。两列均包含国家/地区,有些重叠(均出现在两列中)。我想在同一国家的column1和column2中给出相同的数字。

我的数据看起来像:

import pandas as pd

d = {'col1': ['NL', 'BE', 'FR', 'BE'], 'col2': ['BE', 'NL', 'ES', 'ES']}
df = pd.DataFrame(data=d)
df
Run Code Online (Sandbox Code Playgroud)

目前,我正在像这样转换数据:

from sklearn.preprocessing import LabelEncoder
df.apply(LabelEncoder().fit_transform)
Run Code Online (Sandbox Code Playgroud)

但是,这在FR和ES之间没有区别。是否有另一种简单的方法可以得到以下输出?

o = {'col1': [2,0,1,0], 'col2': [0,2,4,4]}
output = pd.DataFrame(data=o)
output
Run Code Online (Sandbox Code Playgroud)

python python-3.x pandas scikit-learn categorical-data

8
推荐指数
2
解决办法
80
查看次数

错误:由于环境错误而无法安装软件包:[Errno 28] 设备上没有剩余空间

我试图使用安装 turicreate

pip install -U turicreate

但出现错误

由于环境错误,无法安装软件包:[Errno 28] 设备上没有剩余空间。我按照安装说明中的所有步骤进行操作。

有谁知道我该如何解决这个错误?

python turi-create

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

python将fronzensets集合并为一组

我正在尝试合并集合中定义的集合,这就是我现在拥有的

a = frozenset([1,3,4])
b = frozenset([1,2,3,4,5])
s = set()
s.add(a)
s.add(b)
merged = set(itertools.chain.from_iterable(s))
Run Code Online (Sandbox Code Playgroud)

实际上,s可能包含许多冻结集。有更好的方法吗?感觉像reduce情况,但是

from functools import reduce
merged = reduce(|, s)
Run Code Online (Sandbox Code Playgroud)

不起作用。

merged = reduce(set.add, s)
Run Code Online (Sandbox Code Playgroud)

不起作用,因为其中的元素s是Frozensets。

python set set-union

4
推荐指数
2
解决办法
1918
查看次数

计算R中每年没有N/A的观测数

我有一个数据集,我想总结没有缺失值的观测数量(用NA表示).

我的数据类似如下:

data <- read.table(header = TRUE, 
               stringsAsFactors = FALSE, 
               text="CompanyNumber ResponseVariable Year ExplanatoryVariable1 ExplanatoryVariable2
               1 2.5 2000 1 2
               1 4 2001 3 1
               1 3 2002 NA 7
               2 1 2000 3 NA
               2 2.4 2001 0 4
               2 6 2002 2 9
               3 10 2000 NA 3")
Run Code Online (Sandbox Code Playgroud)

我打算使用包dplyr,但这只需要考虑几年而不是不同的变量:

library(dplyr)
data %>% 
  group_by(Year) %>%
  summarise(number = n())
Run Code Online (Sandbox Code Playgroud)

我怎样才能获得以下结果?

                    2000 2001 2002
ExplanatoryVariable1  2   2    1 
ExplanatoryVariable2  2   2    2
Run Code Online (Sandbox Code Playgroud)

r count missing-data dplyr

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

检查多列的值是否相同(python)

我有一个binairy数据帧,我想检查特定行中的所有值是否具有值1.所以例如我有数据帧.由于第0行和第2行在col1到col3中都包含值1,因此结果应为1,如果不是,则应为0.

import pandas as pd
d = {'col1': [1, 0,1,0], 'col2': [1, 0,1, 1], 'col3': [1,0,1,1], 'outcome': [1,0,1,0]}
df = pd.DataFrame(data=d)
Run Code Online (Sandbox Code Playgroud)

由于我自己的数据框架要大得多,我正在寻找比以下更优雅的方式,任何想法?

def similar(x):
    if x['col1'] == 1 and x['col2'] == 1 and x['col3'] == 1:
        return 1
    else:
        ''
df['outcome'] = df.apply(similar, axis=1)
Run Code Online (Sandbox Code Playgroud)

python similarity pandas

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

Pandas:如果不是日期时间则删除行

我有一个数据框,其中包含带有日期的列。但是,日期戳可能不正确,例如以下带有“blabla”的数据。

import pandas as pd 
dates = pd.DataFrame(data={'Date':['2015-01-01' , '2015-02-01', '2015-03-01' , '2015-04-01', '2015-05-01' , '2015-06-01', 'blabla']})
dates
Run Code Online (Sandbox Code Playgroud)

我想将日期列转换为日期时间,并在日期列不正确时删除每一行。

for x in range(len(dates)):
    dates['Date'].iloc[x] = pd.to_datetime(dates['Date'].iloc[x], format='%Y-%m-%d')
Run Code Online (Sandbox Code Playgroud)

到目前为止,我可以将列转换为日期时间,但是有什么方法可以删除日期戳不正确的行吗?提前谢谢了!

python datetime date dataframe pandas

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