drop_duplicates()来自极地的熊猫相当于什么?
import polars as pl\ndf = pl.DataFrame({"a":[1,1,2], "b":[2,2,3], "c":[1,2,3]})\ndf\nRun Code Online (Sandbox Code Playgroud)\n输出:
\nshape: (3, 3)\n\xe2\x94\x8c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xac\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xac\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x90\n\xe2\x94\x82 a \xe2\x94\x86 b \xe2\x94\x86 c \xe2\x94\x82\n\xe2\x94\x82 --- \xe2\x94\x86 --- \xe2\x94\x86 --- \xe2\x94\x82\n\xe2\x94\x82 i64 \xe2\x94\x86 i64 \xe2\x94\x86 i64 \xe2\x94\x82\n\xe2\x95\x9e\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\xaa\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\xaa\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\xa1\n\xe2\x94\x82 1 \xe2\x94\x86 2 \xe2\x94\x86 1 \xe2\x94\x82\n\xe2\x94\x9c\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x94\xbc\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x94\xbc\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x94\xa4\n\xe2\x94\x82 1 \xe2\x94\x86 2 \xe2\x94\x86 2 \xe2\x94\x82\n\xe2\x94\x9c\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x94\xbc\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x94\xbc\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x94\xa4\n\xe2\x94\x82 2 \xe2\x94\x86 3 \xe2\x94\x86 3 \xe2\x94\x82\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xb4\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xb4\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x98\nRun Code Online (Sandbox Code Playgroud)\n代码:
\ndf.drop_duplicates(["a", "b"])\nRun Code Online (Sandbox Code Playgroud)\n产生以下错误:
\n属性错误:未找到 drop_duplicates
\n我已经擦洗了polars文档,但看不到从变量创建具有固定值的列的示例。这是有效的pandas:
df['VERSION'] = version
Run Code Online (Sandbox Code Playgroud)
谢谢
考虑一个 Polars 数据框,其中有一列str类型指示格式中的日期'27 July 2020'。我想将此列转换为polars.datetime与 Python 标准不同的类型datetime。以下代码使用标准datetime格式,可以运行,但 Polars 不会将列中的值识别为日期。
import polars as pl
from datetime import datetime
df = pd.read_csv('<some CSV file containing a column called 'event_date'>')
df = df.with_columns([
pl.col('event_date').apply(lambda x: x.replace(" ","-"))\
.apply(lambda x: datetime.strptime(x, '%d-%B-%Y'))
])
Run Code Online (Sandbox Code Playgroud)
假设我们尝试进一步处理df以创建一个新列,指示事件发生的季度。
df = df.with_columns([
pl.col('event_date').apply(lambda x: x.month)\
.apply(lambda x: 1 if x in range(1,4) else 2 if x in range(4,7) else 3 if x in range(7,10) else 4)\
.alias('quarter') …Run Code Online (Sandbox Code Playgroud) 如何实现 SQL 的 IN 和 NOT IN 的等效功能?
我有一个包含所需值的列表。这是场景:
import pandas as pd
import polars as pl
exclude_fruit = ["apple", "orange"]
df = pl.DataFrame(
{
"A": [1, 2, 3, 4, 5, 6],
"fruits": ["banana", "banana", "apple", "apple", "banana", "orange"],
"B": [5, 4, 3, 2, 1, 6],
"cars": ["beetle", "audi", "beetle", "beetle", "beetle", "frog"],
"optional": [28, 300, None, 2, -30, 949],
}
)
df.filter(~pl.select("fruits").str.contains(exclude_fruit))
df.filter(~pl.select("fruits").to_pandas().isin(exclude_fruit))
df.filter(~pl.select("fruits").isin(exclude_fruit))
Run Code Online (Sandbox Code Playgroud) 我正在绞尽脑汁地试图弄清楚如何在Python的极坐标库中使用groupbyand 。apply
来自 Pandas,我使用的是:
def get_score(df):
return spearmanr(df["prediction"], df["target"]).correlation
correlations = df.groupby("era").apply(get_score)
Run Code Online (Sandbox Code Playgroud)
但在极地,这不起作用。
我尝试了几种方法,主要是:
correlations = df.groupby("era").apply(get_score)
Run Code Online (Sandbox Code Playgroud)
但这失败并出现错误消息:
'可以获取 DataFrame 属性'_df'。确保返回 DataFrame 对象。: PyErr { type: <class 'AttributeError'>, value: AttributeError("'numpy.float64' object has no attribute '_df'"),
有任何想法吗?
我有一个DataFrame带有列表栏的 Polars。我想控制pl.List打印一列的多少个元素。
我已经尝试过pl.pl.Config.set_fmt_str_lengths(),但这仅限制设置为较小值的元素数量,对于较大值,它不会显示更多元素。
我在 Jupyterlab 工作,但我认为这是一个普遍问题。
\nimport polars as pl\n\nN = 5\ndf = (\n pl.DataFrame(\n {\n \'id\': range(N)\n }\n )\n .with_row_count("value")\n .groupby_rolling(\n "id",period=f"{N}i"\n )\n .agg(\n pl.col("value")\n )\n)\ndf\nshape: (5, 2)\n\xe2\x94\x8c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xac\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x90\n\xe2\x94\x82 id \xe2\x94\x86 value \xe2\x94\x82\n\xe2\x94\x82 --- \xe2\x94\x86 --- \xe2\x94\x82\n\xe2\x94\x82 i64 \xe2\x94\x86 list[u32] \xe2\x94\x82\n\xe2\x95\x9e\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\xaa\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\xa1\n\xe2\x94\x82 0 \xe2\x94\x86 [0] \xe2\x94\x82\n\xe2\x94\x9c\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x94\xbc\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x94\xa4\n\xe2\x94\x82 1 \xe2\x94\x86 [0, 1] \xe2\x94\x82\n\xe2\x94\x9c\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x94\xbc\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x94\xa4\n\xe2\x94\x82 2 \xe2\x94\x86 [0, 1, 2] \xe2\x94\x82\n\xe2\x94\x9c\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x94\xbc\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x94\xa4\n\xe2\x94\x82 3 \xe2\x94\x86 [0, 1, ... 3] \xe2\x94\x82\n\xe2\x94\x9c\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x94\xbc\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x95\x8c\xe2\x94\xa4\n\xe2\x94\x82 4 \xe2\x94\x86 [0, 1, ... 4] \xe2\x94\x82\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xb4\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x98\nRun Code Online (Sandbox Code Playgroud)\n 我浏览了 Polars 的整个文档,但找不到任何可以将嵌套 json 转换为数据帧的内容。
test = {
"name": "Ravi",
"Subjects": {
"Maths": 92,
"English": 94,
"Hindi": 98
}
}
Run Code Online (Sandbox Code Playgroud)
pandas 中的 json_normalize 会通过将列命名为 name、Subjects.Maths、Subjects.English 和Subjects.Hindi 将其转换为数据框。那么这在 Polars 有可能吗?我确实尝试了所有功能,但它总是抛出错误,因为它不理解嵌套结构。
我目前正在使用极坐标数据框中创建一个新列
predictions = [10, 20, 30, 40, 50]
df['predictions'] = predictions
Run Code Online (Sandbox Code Playgroud)
其中predictions是一个 numpy 数组或列表,其中包含我用其他工具计算的值。
然而,Polars 发出警告,该选项将被弃用。如何使用 来实现相同的结果.with_columns()?
如果我有一个 Polars 文字,如何提取该值?
import polars as pl
expr = pl.lit(0.5)
val = float(expr)
# TypeError: float() argument must be a string or a real number, not 'Expr'
Run Code Online (Sandbox Code Playgroud)