我正在尝试连接两个PySpark数据帧和一些只在每个上面的列:
from pyspark.sql.functions import randn, rand
df_1 = sqlContext.range(0, 10)
+--+
|id|
+--+
| 0|
| 1|
| 2|
| 3|
| 4|
| 5|
| 6|
| 7|
| 8|
| 9|
+--+
df_2 = sqlContext.range(11, 20)
+--+
|id|
+--+
| 10|
| 11|
| 12|
| 13|
| 14|
| 15|
| 16|
| 17|
| 18|
| 19|
+--+
df_1 = df_1.select("id", rand(seed=10).alias("uniform"), randn(seed=27).alias("normal"))
df_2 = df_2.select("id", rand(seed=10).alias("uniform"), randn(seed=27).alias("normal_2"))
Run Code Online (Sandbox Code Playgroud)
现在我想生成第三个数据帧.我想要像熊猫这样的东西concat:
df_1.show()
+---+--------------------+--------------------+
| id| uniform| …Run Code Online (Sandbox Code Playgroud) 我的问题与此有关。我在Jupyter Notebook中使用Python 3.6。我的项目目录是/user/project。在此目录中,我正在构建许多模型,每个模型都有自己的文件夹。但是,有一个通用的functions.py文件,其中包含我要在所有模型中使用的功能。所以,我想保留functions.py在文件中/user/project,但可以从一个调用它.ipynb的文件中/user/project/model1,/user/project/model2等...我怎样才能做到这一点?
在 Jupyter Notebook 中,我可以单击“帮助”->“编辑键盘快捷键”来更改命令模式快捷键。但是,我看不到如何更改编辑模式快捷方式。我怎样才能做到这一点?
我在Windows 10机器上为所有用户安装了Anaconda for Python 2.7.当我尝试通过更新它时,conda update conda我收到以下错误:
# You don't appear to have the necessary permissions to update packages
# into the install area 'C:\Program Files\Anaconda2'.
# However you can clone this environment into your home directory and
# then make changes to it.
# This may be done using the command:
#
# $ conda create -n my_root --clone=C:\Program Files\Anaconda2
Run Code Online (Sandbox Code Playgroud)
然而,当我尝试将其克隆到我的主目录时,我收到错误:
PermissionError: [WinError 5] Access is denied: 'C:\\Program Files\\Anaconda2\\pkgs\\menuinst-1.4.1-py27_0.tmp'
Run Code Online (Sandbox Code Playgroud)
有办法解决这个问题吗?我一直在谷歌搜索,但没有找到一个明确的解决方案.
如何将data.frameR中的名称作为字符提取?例如,如果我已data.frame命名df,我想将"df"作为角色对象.
我想确保val2每个对应的第一个值vintage是NaN.目前已有两个NaN,但我想确保0.53也改变NaN.
df = pd.DataFrame({
'vintage': ['2017-01-01', '2017-01-01', '2017-01-01', '2017-02-01', '2017-02-01', '2017-03-01'],
'date': ['2017-01-01', '2017-02-01', '2017-03-01', '2017-02-01', '2017-03-01', '2017-03-01'],
'val1': [0.59, 0.68, 0.8, 0.54, 0.61, 0.6],
'val2': [np.nan, 0.66, 0.81, 0.53, 0.62, np.nan]
})
Run Code Online (Sandbox Code Playgroud)
这是我到目前为止所尝试的:
df.groupby('vintage').first().val2 #This gives the first non-NaN values, as shown below
vintage
2017-01-01 0.66
2017-02-01 0.53
2017-03-01 NaN
df.groupby('vintage').first().val2 = np.nan #This doesn't change anything
df.val2
0 NaN
1 0.66
2 0.81
3 0.53
4 …Run Code Online (Sandbox Code Playgroud) 我有一些数据,如下所示,采用hourUTC 格式。我想创建一个名为local_hour基于的新列time_zone。我怎样才能做到这一点?pandas 似乎tz_convert不允许列或 pandas 系列作为参数的输入tz。
# Create dataframe
import pandas as pd
df = pd.DataFrame({
'hour': ['2019-01-01 05:00:00', '2019-01-01 07:00:00', '2019-01-01 08:00:00'],
'time_zone': ['US/Eastern', 'US/Central', 'US/Mountain']
})
# Convert hour to datetime and localize to UTC
df['hour'] = pd.to_datetime(df['hour']).dt.tz_localize('UTC')
df
hour time_zone
0 2019-01-01 05:00:00+00:00 US/Eastern
1 2019-01-01 07:00:00+00:00 US/Central
2 2019-01-01 08:00:00+00:00 US/Mountain
# Create local_hour column to convert hour to US/Eastern time (this works)
df['local_hour'] = df['hour'].dt.tz_convert(tz='US/Eastern')
df …Run Code Online (Sandbox Code Playgroud) 我已经在OSX 10.9.4附带的2.7.5旁边安装了python 2.7.8.
现在我怎么能指向rPythonpython 2.7.8?
我已.bash_profile按如下方式修改了OSX ,以指向更新的python安装.
export PATH=/usr/local/Cellar/python/2.7.8/bin/:$PATH:usr/local/bin:
Run Code Online (Sandbox Code Playgroud)
现在,当我从终端运行python时,它正确运行较新的版本
mba:~ tommy$ which python
/usr/local/Cellar/python/2.7.8/bin//python
Run Code Online (Sandbox Code Playgroud)
但是,rPython仍然看到2.7.5.
> library(rPython)
Loading required package: RJSONIO
> python.exec("import sys; print(sys.version)")
2.7.5 (default, Mar 9 2014, 22:15:05)
[GCC 4.2.1 Compatible Apple LLVM 5.0 (clang-500.0.68)]
Run Code Online (Sandbox Code Playgroud)
它看起来.bash_profile根本不被R使用......所以我试图修改R内的PATH但是仍然没有运气.
> Sys.getenv("PATH")
[1] "/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin"
> Sys.setenv(PATH = "usr/local/Cellar/python/2.7.8/bin")
> library(rPython)
Loading required package: RJSONIO
> python.exec("import sys; print(sys.version)")
2.7.5 (default, Mar 9 2014, 22:15:05)
[GCC 4.2.1 Compatible Apple LLVM 5.0 …Run Code Online (Sandbox Code Playgroud) 我想在a中添加多个列pandas DataFrame,并将它们设置为等于现有列.有一个简单的方法吗?在R我会做:
df <- data.frame(a=1:5)
df[c('b','c')] <- df$a
df
a b c
1 1 1 1
2 2 2 2
3 3 3 3
4 4 4 4
5 5 5 5
Run Code Online (Sandbox Code Playgroud)
在pandas此结果中KeyError: "['b' 'c'] not in index":
df = pd.DataFrame({'a': np.arange(1,6)})
df[['b','c']] = df.a
Run Code Online (Sandbox Code Playgroud) 我在Databricks中使用Spark 2.1版.我有一个数据框wamp,我想要添加一个名为的列region,该列应该采用常量值NE.但是,NameError: name 'lit' is not defined当我运行以下命令时出现错误:
wamp = wamp.withColumn('region', lit('NE'))
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
python ×4
pandas ×3
apache-spark ×2
dataframe ×2
pyspark ×2
r ×2
anaconda ×1
databricks ×1
python-2.7 ×1
python-3.x ×1
rpython ×1