How to take a list and fill with values and put into a dataframe and filter in Python?
To take a list, fill it with values, and put it into a DataFrame in Python, and then filter the DataFrame, you can use the pandas
library. Here's a step-by-step guide with code examples:
1. Create a List of Values
You start by creating a list of values, which could be a list of dictionaries, lists, or individual values depending on your structure.
# Example: A list of lists (rows)
data = [
[1, 'apple', 10],
[2, 'banana', 5],
[3, 'cherry', 15],
[4, 'date', 7],
[5, 'elderberry', 20]
]
2. Convert List to DataFrame
Once you have your list, you can convert it into a pandas
DataFrame.
import pandas as pd
# Create DataFrame with column names
df = pd.DataFrame(data, columns=['ID', 'Fruit', 'Quantity'])
# Display the DataFrame
print(df)
This will produce the following DataFrame:
ID Fruit Quantity
0 1 apple 10
1 2 banana 5
2 3 cherry 15
3 4 date 7
4 5 elderberry 20
3. Filter the DataFrame
Once the DataFrame is created, you can apply filtering to get specific rows based on conditions.
Example 1: Filter Rows Based on a Condition
Let's say you want to filter rows where the Quantity
is greater than 10.
filtered_df = df[df['Quantity'] > 10]
print(filtered_df)
Output:
ID Fruit Quantity
2 3 cherry 15
4 5 elderberry 20
Example 2: Filter Rows Based on Multiple Conditions
You can combine multiple conditions. For example, filter rows where the Quantity
is greater than 5 and the Fruit
is not 'banana'
:
filtered_df = df[(df['Quantity'] > 5) & (df['Fruit'] != 'banana')]
print(filtered_df)
Output:
ID Fruit Quantity
0 1 apple 10
2 3 cherry 15
3 4 date 7
4 5 elderberry 20
4. Fill the List with Values
If you want to fill the list with values before putting it into a DataFrame, you can do it dynamically. For example:
# Create a list with some initial values
data = []
# Fill the list with values
for i in range(5):
data.append([i+1, f'fruit_{i+1}', (i+1)*5])
# Convert the list into a DataFrame
df = pd.DataFrame(data, columns=['ID', 'Fruit', 'Quantity'])
print(df)
Output:
ID Fruit Quantity
0 1 fruit_1 5
1 2 fruit_2 10
2 3 fruit_3 15
3 4 fruit_4 20
4 5 fruit_5 25
5. Filter with .query()
(Alternative Approach)
Another elegant way to filter a DataFrame is using the .query()
method.
# Example: Filter rows where Quantity > 10
filtered_df = df.query('Quantity > 10')
print(filtered_df)
This will produce the same result as using boolean indexing.
Summary of Key Steps:
- Create a list: Use a list of values (e.g., a list of lists or a list of dictionaries).
- Convert to DataFrame: Use
pd.DataFrame()
to create a DataFrame from the list. - Filter: Use boolean indexing or
.query()
to filter the DataFrame based on conditions.
Let me know if you'd like more details on any specific part!