小编Raj*_*Raj的帖子

将日期从整数转换为日期格式

我有一列“start_date”,它是一个整数 37823。这发生在我使用 xlrd 库将 xlsx 转换为 csv 时。因此,'2003/07/21' 被转换为 37823。

我已经阅读了 xlrd 文档,我知道有几种方法可以将其转换为最新版本。但是,我需要在 AWS Glue ETL 作业中使用 PySpark 将其转换为日期格式。有什么建议?

我尝试使用 to_date、date_format 函数,但没有任何效果。

python pyspark aws-glue

4
推荐指数
1
解决办法
9991
查看次数

Pandas:从列列表中检查 df 中是否存在列

这里的目标是找到 df 中不存在的列并用空值创建它们。

我有一个列名列表,如下所示:

column_list = ('column_1', 'column_2', 'column_3')
Run Code Online (Sandbox Code Playgroud)

当我尝试检查该列是否存在时,它仅对存在的列给出 True,对于那些缺失的列不给出 False。

for column in column_list:
    print df.columns.isin(column_list).any()
Run Code Online (Sandbox Code Playgroud)

在 PySpark 中,我可以使用以下方法实现这一点:

for column in column_list:
        if not column in df.columns:
            df = df.withColumn(column, lit(''))
Run Code Online (Sandbox Code Playgroud)

如何使用 Pandas 实现相同的目标?

python pandas

4
推荐指数
2
解决办法
1万
查看次数

检查包含超过 64 个字符的数据框列

我试图在 Pandas 数据框中找到超过 64 个字符的列。

数据框有 20 列。我想检查列中每个值的字符长度,如果任何值超过 64 个字符,则打印列名称。

当我使用下面的代码时,它不会给出任何错误,但不会输出具有与条件匹配的值的列名称。

for col in df.columns:
    if (df[col].str.len()).any() > 64:
        print col
Run Code Online (Sandbox Code Playgroud)

我还确保数据框中的所有数据类型都是字符串类型。

我如何使用 Pandas 实现这一目标?

python pandas

4
推荐指数
1
解决办法
2865
查看次数

将 Excel 文件从 S3 读入 Pandas DataFrame

我有一个 SNS 通知设置,当 .xlsx 文件上传到 S3 存储桶时,它会触发 Lambda 函数。

lambda 函数将 .xlsx 文件读入 Pandas DataFrame。

import os 
import pandas as pd
import json
import xlrd
import boto3

def main(event, context):
    message = event['Records'][0]['Sns']['Message']
    parsed_message = json.loads(message)
    src_bucket = parsed_message['Records'][0]['s3']['bucket']['name']
    filepath = parsed_message['Records'][0]['s3']['object']['key']

    s3 = boto3.resource('s3')
    s3_client = boto3.client('s3')

    obj = s3_client.get_object(Bucket=src_bucket, Key=filepath)
    print(obj['Body'])

    df = pd.read_excel(obj, header=2)
    print(df.head(2))
Run Code Online (Sandbox Code Playgroud)

我收到如下错误:

Invalid file path or buffer object type: <type 'dict'>: ValueError
Traceback (most recent call last):
File "/var/task/handler.py", line 26, in main …
Run Code Online (Sandbox Code Playgroud)

python lambda amazon-s3 pandas

4
推荐指数
1
解决办法
8087
查看次数

标签 统计

python ×4

pandas ×3

amazon-s3 ×1

aws-glue ×1

lambda ×1

pyspark ×1