在我的数据集中,我想列举两个分类列。两列均包含国家/地区,有些重叠(均出现在两列中)。我想在同一国家的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) 我试图使用安装 turicreate
pip install -U turicreate
但出现错误
由于环境错误,无法安装软件包:[Errno 28] 设备上没有剩余空间。我按照安装说明中的所有步骤进行操作。
有谁知道我该如何解决这个错误?
我正在尝试合并集合中定义的集合,这就是我现在拥有的
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。
我有一个数据集,我想总结没有缺失值的观测数量(用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) 我有一个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) 我有一个数据框,其中包含带有日期的列。但是,日期戳可能不正确,例如以下带有“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 ×5
pandas ×3
count ×1
dataframe ×1
date ×1
datetime ×1
dplyr ×1
missing-data ×1
python-3.x ×1
r ×1
scikit-learn ×1
set ×1
set-union ×1
similarity ×1
turi-create ×1