# Real-World Case Study: E-commerce Product Pipeline
import boto3
from PIL import Image
import io
def process_product_image(s3_bucket, s3_key):
# 1. Download from S3
s3 = boto3.client('s3')
response = s3.get_object(Bucket=s3_bucket, Key=s3_key)
img = Image.open(io.BytesIO(response['Body'].read()))
# 2. Standardize dimensions
img = img.convert("RGB")
img = img.resize((1200, 1200), Image.LANCZOS)
# 3. Remove background (simplified)
# In practice: use rembg or AWS Rekognition
img = remove_background(img)
# 4. Generate variants
variants = {
"web": img.resize((800, 800)),
"mobile": img.resize((400, 400)),
"thumbnail": img.resize((100, 100))
}
# 5. Upload to CDN
for name, variant in variants.items():
buffer = io.BytesIO()
variant.save(buffer, "JPEG", quality=95)
s3.upload_fileobj(
buffer,
"cdn-bucket",
f"products/{s3_key.split('/')[-1].split('.')[0]}_{name}.jpg",
ExtraArgs={'ContentType': 'image/jpeg', 'CacheControl': 'max-age=31536000'}
)
# 6. Generate WebP version
webp_buffer = io.BytesIO()
img.save(webp_buffer, "WEBP", quality=85)
s3.upload_fileobj(webp_buffer, "cdn-bucket", f"products/{s3_key.split('/')[-1].split('.')[0]}.webp")
process_product_image("user-uploads", "products/summer_dress.jpg")
By: @DataScienceM π
#Python #ImageProcessing #ComputerVision #Pillow #OpenCV #MachineLearning #CodingInterview #DataScience #Programming #TechJobs #DeveloperTips #AI #DeepLearning #CloudComputing #Docker #BackendDevelopment #SoftwareEngineering #CareerGrowth #TechTips #Python3
β€1
In Python, building AI-powered Telegram bots unlocks massive potential for image generation, processing, and automationβmaster this to create viral tools and ace full-stack interviews! π€
Learn more: https://hackmd.io/@husseinsheikho/building-AI-powered-Telegram-bots
https://t.iss.one/DataScienceMπ¦Ύ
# Basic Bot Setup - The foundation (PTB v20+ Async)
from telegram.ext import Application, CommandHandler, MessageHandler, filters
async def start(update, context):
await update.message.reply_text(
"β¨ AI Image Bot Active!\n"
"/generate - Create images from text\n"
"/enhance - Improve photo quality\n"
"/help - Full command list"
)
app = Application.builder().token("YOUR_BOT_TOKEN").build()
app.add_handler(CommandHandler("start", start))
app.run_polling()
# Image Generation - DALL-E Integration (OpenAI)
import openai
from telegram.ext import ContextTypes
openai.api_key = os.getenv("OPENAI_API_KEY")
async def generate(update: Update, context: ContextTypes.DEFAULT_TYPE):
if not context.args:
await update.message.reply_text("β Usage: /generate cute robot astronaut")
return
prompt = " ".join(context.args)
try:
response = openai.Image.create(
prompt=prompt,
n=1,
size="1024x1024"
)
await update.message.reply_photo(
photo=response['data'][0]['url'],
caption=f"π¨ Generated: *{prompt}*",
parse_mode="Markdown"
)
except Exception as e:
await update.message.reply_text(f"π₯ Error: {str(e)}")
app.add_handler(CommandHandler("generate", generate))
Learn more: https://hackmd.io/@husseinsheikho/building-AI-powered-Telegram-bots
#Python #TelegramBot #AI #ImageGeneration #StableDiffusion #OpenAI #MachineLearning #CodingInterview #FullStack #Chatbots #DeepLearning #ComputerVision #Programming #TechJobs #DeveloperTips #CareerGrowth #CloudComputing #Docker #APIs #Python3 #Productivity #TechTips
https://t.iss.one/DataScienceM
Please open Telegram to view this post
VIEW IN TELEGRAM
β€1
π‘ Pandas Cheatsheet
A quick guide to essential Pandas operations for data manipulation, focusing on creating, selecting, filtering, and grouping data in a DataFrame.
1. Creating a DataFrame
The primary data structure in Pandas is the DataFrame. It's often created from a dictionary.
β’ A dictionary is defined where keys become column names and values become the data in those columns.
2. Selecting Data with
Use
β’
β’
3. Filtering Data
Select subsets of data based on conditions.
β’ The expression
β’ Using this Series as an index
4. Grouping and Aggregating
The "group by" operation involves splitting data into groups, applying a function, and combining the results.
β’
β’
#Python #Pandas #DataAnalysis #DataScience #Programming
βββββββββββββββ
By: @DataScienceM β¨
A quick guide to essential Pandas operations for data manipulation, focusing on creating, selecting, filtering, and grouping data in a DataFrame.
1. Creating a DataFrame
The primary data structure in Pandas is the DataFrame. It's often created from a dictionary.
import pandas as pd
data = {'Name': ['Alice', 'Bob', 'Charlie'],
'Age': [25, 32, 28],
'City': ['New York', 'Paris', 'New York']}
df = pd.DataFrame(data)
print(df)
# Name Age City
# 0 Alice 25 New York
# 1 Bob 32 Paris
# 2 Charlie 28 New York
β’ A dictionary is defined where keys become column names and values become the data in those columns.
pd.DataFrame() converts it into a tabular structure.2. Selecting Data with
.loc and .ilocUse
.loc for label-based selection and .iloc for integer-position based selection.# Select the first row by its integer position (0)
print(df.iloc[0])
# Select the row with index label 1 and only the 'Name' column
print(df.loc[1, 'Name'])
# Output for df.iloc[0]:
# Name Alice
# Age 25
# City New York
# Name: 0, dtype: object
#
# Output for df.loc[1, 'Name']:
# Bob
β’
.iloc[0] gets all data from the row at index position 0.β’
.loc[1, 'Name'] gets the data at the intersection of index label 1 and column label 'Name'.3. Filtering Data
Select subsets of data based on conditions.
# Select rows where Age is greater than 27
filtered_df = df[df['Age'] > 27]
print(filtered_df)
# Name Age City
# 1 Bob 32 Paris
# 2 Charlie 28 New York
β’ The expression
df['Age'] > 27 creates a boolean Series (True/False).β’ Using this Series as an index
df[...] returns only the rows where the value was True.4. Grouping and Aggregating
The "group by" operation involves splitting data into groups, applying a function, and combining the results.
# Group by 'City' and calculate the mean age for each city
city_ages = df.groupby('City')['Age'].mean()
print(city_ages)
# City
# New York 26.5
# Paris 32.0
# Name: Age, dtype: float64
β’
.groupby('City') splits the DataFrame into groups based on unique city values.β’
['Age'].mean() then calculates the mean of the 'Age' column for each of these groups.#Python #Pandas #DataAnalysis #DataScience #Programming
βββββββββββββββ
By: @DataScienceM β¨
β€1π1
β’ Group data by a column.
β’ Group by a column and get the sum.
β’ Apply multiple aggregation functions at once.
β’ Get the size of each group.
β’ Get the frequency counts of unique values in a Series.
β’ Create a pivot table.
VI. Merging, Joining & Concatenating
β’ Merge two DataFrames (like a SQL join).
β’ Concatenate (stack) DataFrames along an axis.
β’ Join DataFrames on their indexes.
VII. Input & Output
β’ Write a DataFrame to a CSV file.
β’ Write a DataFrame to an Excel file.
β’ Read data from an Excel file.
β’ Read from a SQL database.
VIII. Time Series & Special Operations
β’ Use the string accessor (
β’ Use the datetime accessor (
β’ Create a rolling window calculation.
β’ Create a basic plot from a Series or DataFrame.
#Python #Pandas #DataAnalysis #DataScience #Programming
βββββββββββββββ
By: @DataScienceM β¨
df.groupby('col1')β’ Group by a column and get the sum.
df.groupby('col1').sum()β’ Apply multiple aggregation functions at once.
df.groupby('col1').agg(['mean', 'count'])β’ Get the size of each group.
df.groupby('col1').size()β’ Get the frequency counts of unique values in a Series.
df['col1'].value_counts()
β’ Create a pivot table.
pd.pivot_table(df, values='D', index=['A', 'B'], columns=['C'])
VI. Merging, Joining & Concatenating
β’ Merge two DataFrames (like a SQL join).
pd.merge(left_df, right_df, on='key_column')
β’ Concatenate (stack) DataFrames along an axis.
pd.concat([df1, df2]) # Stacks rows
β’ Join DataFrames on their indexes.
left_df.join(right_df, how='outer')
VII. Input & Output
β’ Write a DataFrame to a CSV file.
df.to_csv('output.csv', index=False)β’ Write a DataFrame to an Excel file.
df.to_excel('output.xlsx', sheet_name='Sheet1')β’ Read data from an Excel file.
pd.read_excel('input.xlsx', sheet_name='Sheet1')β’ Read from a SQL database.
pd.read_sql_query('SELECT * FROM my_table', connection_object)VIII. Time Series & Special Operations
β’ Use the string accessor (
.str) for Series operations.s.str.lower()
s.str.contains('pattern')
β’ Use the datetime accessor (
.dt) for Series operations.s.dt.year
s.dt.day_name()
β’ Create a rolling window calculation.
df['col1'].rolling(window=3).mean()
β’ Create a basic plot from a Series or DataFrame.
df['col1'].plot(kind='hist')
#Python #Pandas #DataAnalysis #DataScience #Programming
βββββββββββββββ
By: @DataScienceM β¨
β€6π1π₯1