我正在尝试在 Rstudio (Rmarkdown) 中的 python 块中执行 python 代码,但在收到错误时无法声明函数:
IndentationError: unexpected indent (<string>, line 1)
(我不会将制表符与空格等混合)
以下代码在 Rstudio 的 python 块中不起作用,但在 Python Spyder IDE 中工作得很好。
import pandas as pd
cars = {'Brand': ['1HondaA','2ToyotaA','3FordA','4AudiA'],
'Brand_2': ['1HondaA','2ToyotaA','3FordA','4AudiA']
}
df = pd.DataFrame(cars, columns = ['Brand', 'Brand_2'])
df
def convert(brand_column):
df[brand_column] = df[brand_column].str.replace('A', '')
df[brand_column + "_number"] = df[brand_column].str.extract('(\d+)')
convert("Brand")
df
convert("Brand_2")
df
您需要指定 python 所在的位置。我使用的是 Mac,所以我可以这样做。我没有想到你的缩进错误,所以也许仔细检查你的缩进和空格。
---
output: html_document
---
```{r}
library(reticulate)
knitr::knit_engines$set(python = reticulate::eng_python)
use_python("/usr/local/bin/python3")
```
```{python}
import pandas as pd
cars = {'Brand': ['1HondaA','2ToyotaA','3FordA','4AudiA'],
'Brand_2': ['1HondaA','2ToyotaA','3FordA','4AudiA']
}
df = pd.DataFrame(cars, columns = ['Brand', 'Brand_2'])
df
def convert(brand_column):
df[brand_column] = df[brand_column].str.replace('A', '')
df[brand_column + "_number"] = df[brand_column].str.extract('(\d+)')
convert("Brand")
df
convert("Brand_2")
df
```
如果你有窗户,它可能类似于
"C:\\Users\\username\\Anaconda3\\python.exe")
或类似的