我正在尝试使用以下方法连接共享相同索引的两个数据集:
merged_data = df1.join(df2)
Run Code Online (Sandbox Code Playgroud)
然而,内核不断死亡。我尝试重新启动我的笔记本(jupyter lab),但我认为这与其中一个大约 2GB 的数据帧有关......
关于 df1
<class 'pandas.core.frame.DataFrame'>
Index: 97812 entries, XXXX to XXXX
Data columns (total 19 columns):
dtypes: float64(2), int64(3), object(14)
memory usage: 14.9+ MB
Run Code Online (Sandbox Code Playgroud)
关于 df2
<class 'pandas.core.frame.DataFrame'>
Index: 13888745 entries, XXXX to XXXX
Data columns (total 18 columns):
dtypes: int64(16), object(2)
memory usage: 2.0+ GB
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
我确实需要所有条目和列。除了索引之外,数据框不共享公共列。
如果值得了解的话...我使用的是配备 2.7 GHz 双核 Intel Core i5(处理器)和 8 GB 1867 MHz DDR3(内存)的 MacBook Pro(2015 年初)
我想知道是否有一种方法可以在 R 上显示我的数据集的所有数据类型,就像您可以使用 df.info() 在 pandas 上执行的那样。
我知道我可以使用
names(data)
Run Code Online (Sandbox Code Playgroud)
然后对于每个单独的功能做
class(data$Feature)
Run Code Online (Sandbox Code Playgroud)
但是,我想知道是否有更有效的方法。
想象一下这张表:
id col1 col2 col3 col4
1 A A C
2 B B B
3 D D
Run Code Online (Sandbox Code Playgroud)
我想添加一列来告诉我该行的所有非空值是否匹配。
所以理想的输出是:
id col1 col2 col3 col4 is_a_match
1 A A C FALSE
2 B B B TRUE
3 D D TRUE
Run Code Online (Sandbox Code Playgroud)
我努力了:
select *,
case
when col1 = col2
and col2 = col3
and col3 = col4
then 'TRUE'
else 'FALSE'
end as is_a_match
from my_table
Run Code Online (Sandbox Code Playgroud)
false但由于空值,将返回所有内容。
实现上述输出的最佳方法是什么?