Dataframe Creation
Syntax:
A python DataFrames can be created using the following syntax:
<pandas>.DataFrame (<data>,<index>,<columns>, <dtype>,<copy>)
Data Data content like tuple, list, dict, ndarray.
Index Index values must be unique and hashable , same length as data. If index not
specified, default is 0 to n – 1 i.e. [Link](n)
columns Column labels, the optional default syntax is [Link](n). This is only true if
no index is passed.
dtype Dtype is for data type. If none, data type will be automatically inferred.
Copy Copy data. Default false
Dataframe can be created using various ways:
1. empty dataframe
2. list
3. series
4. dictionaries
5. numpy array
6. list of dictionaries
7. dictionary of lists
8. dictionary of series
import pandas as pd
import numpy as np
#1. empty dataframe
df=[Link]()
print(df)
#2. list
x=[1,2,3,4]
y=[5,6,7,8]
df1=[Link]([x,y])
print(df1)
#numpy array
n1=[Link]([10,20,30,40])
n2=[Link](101,110,2)
df2=[Link]([n1,n2])
#print(df2)
#Series
s1=[Link]([1,2,3,4,5],index=[100,101,102,103,104])
s2=[Link]([6,7,8,9],index=[100,101,102,103])
df3=[Link]({"C1":s1,"C2":s2})
print(df3)
#Dictionary of lists
d1={"C1":[1,2,3,4],"C2":[5,6,7,8]}
df4=[Link](d1,index=[100,101,102,103])
print(df4)
#List of Dictionaries
d2=[{"C1":10,"C2":45},{"C1":45,"C3":56},{"C2":78,"C4":56}]
df5=[Link](d2)
print(df5)
#Dictionary of Series
d1={"C1":[Link]([1,2,3,4],index=[100,101,102,103]),
"C2":[Link]([5,6,7],index=[100,101,104])}
df6=[Link](d1)
print(df6)
#insertion
import pandas as pd
sales=[Link]({"2014":[100.5,150.8,200.9,30000,40000],
"2015":[12000,18000,22000,30000,45000],
"2016":[20000,50000,70000,100000,125000],
"2017":[50000,60000,70000,80000,90000]},
index=["Madhu","Kusum","Kinsuk","Ankit","Shruti"])
print(sales)
#new row insertion
[Link]["Avi"]=[40000,50000,60000,70000]
print(sales)
#new column insertion at end
sales["2018"]=[10000,20000,30000,40000,50000,60000]
print(sales)
#new column insertion at particular index with same value
[Link](2,"2019",20000)
print(sales)
#new column insertion at particular index with different values
[Link](4,"2020",[1000,2000,20000,4000,50000,7000])
print(sales)
#Renaming column
[Link]({"2020":"2021","2019":"2022"},axis=1,inplace=True)
print(sales)
#OR
[Link]({"2020":"2021","2019":"2022"},axis="columns",inplace=True)
print(sales)
#OR
[Link](columns={"2020":"2021","2019":"2022"},inplace=True)
print(sales)
#OR
sales=[Link]({"2020":"2021","2019":"2022"},axis=1)
print(sales)
#Rename rows
[Link]({"Madhu":"Abhimanyu","Kusum":"Gargi"},axis=0,inplace=True)
print(sales)
#OR
[Link]({"Madhu":"Abhimanyu","Kusum":"Gargi"},axis="index",inplace=True)
print(sales)
#OR
[Link](index={"Madhu":"Abhimanyu","Kusum":"Gargi"},inplace=True)
print(sales)
#OR
sales=[Link]({"Madhu":"Abhimanyu","Kusum":"Gargi"},axis=0)
print(sales)
#Deletion
import pandas as pd
sales=[Link]({"2014":[100.5,150.8,200.9,30000,40000],
"2015":[12000,18000,22000,30000,45000],
"2016":[20000,50000,70000,100000,125000],
"2017":[50000,60000,70000,80000,90000]},
index=["Madhu","Kusum","Kinsuk","Ankit","Shruti"])
print(sales)
#column deletion
[Link](["2017","2016"],axis=1,inplace=True)
#OR
#[Link](columns="2016",inplace=True)
#Or
[Link]("2016",axis="columns",inplace=True)
print(sales)
# To delete permanently
sales=[Link]("2015",axis="columns")
#Row deletion
[Link](index=["Madhu","Ankit"],inplace=True)
#OR
[Link](["Madhu","Ankit"], axis=index, inplace=True)
#OR
[Link](["Madhu","Ankit"], axis=0, inplace=True)
print(sales)
#To delete permanently
sales=[Link](["Kusum","Shruti"])
print(sales)
#Extraction through row index/column index and slicing
import pandas as pd
sales=[Link]({"2014":[100.5,150.8,200.9,30000,40000],
"2015":[12000,18000,22000,30000,45000],
"2016":[20000,50000,70000,100000,125000],
"2017":[50000,60000,70000,80000,90000]},
index=["Madhu","Kusum","Kinsuk","Ankit","Shruti"])
print(sales)
# one column though index
print(sales[“2015”])
# more than one column indexes
print(sales[["2016","2014"]])
# one row index
print([Link][“Madhu”])
# more than one row index
print([Link][["Ankit","Madhu"]])
# all rows particular column through slicing
print([Link][:,"2014":"2016"])
# all columns particular rows through slicing
print([Link]["Madhu":"Kinsuk",:])
# more than one row and particular column through index
print([Link][["Kusum","Shruti"],"2016"])
# more than one column and one column through index
print([Link]["Kinsuk",["2014","2016"]])
# positional index
print([Link][1:3,1:3])
#Extraction through data
Syntax:
1. [Link] [condition/expression/criteria, column list]
OR
2. Dataframename [column list] [condition/expression/criteria]
Note:
1. If expressions are more than one, then each expression must be enclosed in round small brackets
and combine expressions using logical operator. (&/|)
2. if column list contains only one column then it will be mention without square brackets and if
these are more than one then enclosed in square brackets and separated each column by
comma (,).
3. In an expression, column name will be specified along with dataframe name and in column list it
will be mentioned with dataframe name.
import pandas as pd
sales=[Link]({"2014":[100.5,150.8,200.9,30000,40000],
"2015":[12000,18000,22000,30000,45000],
"2016":[20000,50000,70000,100000,125000],
"2017":[50000,60000,70000,80000,90000]},
index=["Madhu","Kusum","Kinsuk","Ankit","Shruti"])
print(sales)
'''to display of those sales details whose sales are less than or equal to 70000
in the year 2017.
'''
print([Link][sales["2017"]<=70000,"2014":"2017"])
#OR
print([Link][sales["2017"]<=70000,:])
#OR
print([Link][sales["2017"]<=70000,["2014","2015","2016","2017"]])
#OR
print(sales[["2014","2015","2016","2017"]][sales["2017"]<=70000])
#OR
print(sales[sales["2017"]<=70000])
#OR
print(sales[:][sales["2017"]<=70000])
#OR
print([Link][sales["2017"]<=70000])
''' To display sales details in the year 2014 and 2016 where sales are in
between 20000 and 30000 in the year 2015 '''
print([Link][(sales["2015"]>=20000)&(sales["2015"]<=30000),["2014","2016"]])
#or
print(sales[["2014","2016"]][(sales["2015"]>=20000)&(sales["2015"]<=30000)])
Data Frame Attributes
import pandas as pd
sales=[Link]({"2014":[100.5,150.8,200.9,30000,40000],
"2015":[12000,18000,22000,30000,45000],
"2016":[20000,50000,70000,100000,125000],
"2017":[50000,60000,70000,80000,90000]},
index=["Madhu","Kusum","Kinsuk","Ankit","Shruti"])
print(sales)
print([Link])
print([Link])
print([Link])
[Link]=["A","b","c","d","e"]
print(sales.T)
print([Link])
print([Link])
print([Link])
20
#CSV file
#Export dataframe
sales.to_csv("[Link]",header=False,index=False,sep="*")
#Import csv to dataframe
df2=pd.read_csv("[Link]",sep="*",names=["a","b","c","d"])
print(df2)
#Iteration
for x,y in [Link]():
print(x,y)
for x,y in [Link]():
print(x)
print(y)