pandas
DataFrames का सरल हेरफेर
खोज…
DataFrame में एक कॉलम हटाएं
DataFrame में किसी कॉलम को हटाने के कुछ तरीके हैं।
import numpy as np
import pandas as pd
np.random.seed(0)
pd.DataFrame(np.random.randn(5, 6), columns=list('ABCDEF'))
print(df)
# Output:
# A B C D E F
# 0 -0.895467 0.386902 -0.510805 -1.180632 -0.028182 0.428332
# 1 0.066517 0.302472 -0.634322 -0.362741 -0.672460 -0.359553
# 2 -0.813146 -1.726283 0.177426 -0.401781 -1.630198 0.462782
# 3 -0.907298 0.051945 0.729091 0.128983 1.139401 -1.234826
# 4 0.402342 -0.684810 -0.870797 -0.578850 -0.311553 0.056165
1) del
का उपयोग करना
del df['C']
print(df)
# Output:
# A B D E F
# 0 -0.895467 0.386902 -1.180632 -0.028182 0.428332
# 1 0.066517 0.302472 -0.362741 -0.672460 -0.359553
# 2 -0.813146 -1.726283 -0.401781 -1.630198 0.462782
# 3 -0.907298 0.051945 0.128983 1.139401 -1.234826
# 4 0.402342 -0.684810 -0.578850 -0.311553 0.056165
2) drop
का उपयोग करना
df.drop(['B', 'E'], axis='columns', inplace=True)
# or df = df.drop(['B', 'E'], axis=1) without the option inplace=True
print(df)
# Output:
# A D F
# 0 -0.895467 -1.180632 0.428332
# 1 0.066517 -0.362741 -0.359553
# 2 -0.813146 -0.401781 0.462782
# 3 -0.907298 0.128983 -1.234826
# 4 0.402342 -0.578850 0.056165
3) कॉलम नंबर के साथ drop
का उपयोग करना
नामों के बजाय कॉलम पूर्णांक संख्याओं का उपयोग करने के लिए (याद रखें कॉलम सूचकांक शून्य से शुरू होते हैं):
df.drop(df.columns[[0, 2]], axis='columns')
print(df)
# Output:
# D
# 0 -1.180632
# 1 -0.362741
# 2 -0.401781
# 3 0.128983
# 4 -0.578850
एक कॉलम का नाम बदलें
df = pd.DataFrame({'old_name_1': [1, 2, 3], 'old_name_2': [5, 6, 7]})
print(df)
# Output:
# old_name_1 old_name_2
# 0 1 5
# 1 2 6
# 2 3 7
एक या अधिक स्तंभों का नाम बदलने के लिए, पुराने नामों और नए नामों को शब्दकोश के रूप में पास करें:
df.rename(columns={'old_name_1': 'new_name_1', 'old_name_2': 'new_name_2'}, inplace=True)
print(df)
# Output:
# new_name_1 new_name_2
# 0 1 5
# 1 2 6
# 2 3 7
या एक समारोह:
df.rename(columns=lambda x: x.replace('old_', '_new'), inplace=True)
print(df)
# Output:
# new_name_1 new_name_2
# 0 1 5
# 1 2 6
# 2 3 7
आप नए नामों की सूची के रूप में df.columns
भी सेट कर सकते हैं:
df.columns = ['new_name_1','new_name_2']
print(df)
# Output:
# new_name_1 new_name_2
# 0 1 5
# 1 2 6
# 2 3 7
अधिक विवरण यहां पाया जा सकता है ।
एक नया कॉलम जोड़ना
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
print(df)
# Output:
# A B
# 0 1 4
# 1 2 5
# 2 3 6
सीधे असाइन करें
df['C'] = [7, 8, 9]
print(df)
# Output:
# A B C
# 0 1 4 7
# 1 2 5 8
# 2 3 6 9
एक निरंतर स्तंभ जोड़ें
df['C'] = 1
print(df)
# Output:
# A B C
# 0 1 4 1
# 1 2 5 1
# 2 3 6 1
अन्य स्तंभों में एक अभिव्यक्ति के रूप में कॉलम
df['C'] = df['A'] + df['B']
# print(df)
# Output:
# A B C
# 0 1 4 5
# 1 2 5 7
# 2 3 6 9
df['C'] = df['A']**df['B']
print(df)
# Output:
# A B C
# 0 1 4 1
# 1 2 5 32
# 2 3 6 729
संचालन को घटक-वार गणना की जाती है, इसलिए यदि हमारे पास सूची के रूप में कॉलम होंगे
a = [1, 2, 3]
b = [4, 5, 6]
अंतिम अभिव्यक्ति में कॉलम के रूप में प्राप्त किया जाएगा
c = [x**y for (x,y) in zip(a,b)]
print(c)
# Output:
# [1, 32, 729]
इसे मक्खी पर बनाएँ
df_means = df.assign(D=[10, 20, 30]).mean()
print(df_means)
# Output:
# A 2.0
# B 5.0
# C 7.0
# D 20.0 # adds a new column D before taking the mean
# dtype: float64
कई कॉलम जोड़ें
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
df[['A2','B2']] = np.square(df)
print(df)
# Output:
# A B A2 B2
# 0 1 4 1 16
# 1 2 5 4 25
# 2 3 6 9 36
मक्खी पर कई कॉलम जोड़ें
new_df = df.assign(A3=df.A*df.A2, B3=5*df.B)
print(new_df)
# Output:
# A B A2 B2 A3 B3
# 0 1 4 1 16 1 20
# 1 2 5 4 25 8 25
# 2 3 6 9 36 27 30
किसी कॉलम में डेटा की स्थिति जानें और बदलें
import pandas as pd
df = pd.DataFrame({'gender': ["male", "female","female"],
'id': [1, 2, 3] })
>>> df
gender id
0 male 1
1 female 2
2 female 3
पुरुष को 0 और महिला को 1:
df.loc[df["gender"] == "male","gender"] = 0
df.loc[df["gender"] == "female","gender"] = 1
>>> df
gender id
0 0 1
1 1 2
2 1 3
DataFrame में एक नई पंक्ति जोड़ना
एक DataFrame दिया:
s1 = pd.Series([1,2,3])
s2 = pd.Series(['a','b','c'])
df = pd.DataFrame([list(s1), list(s2)], columns = ["C1", "C2", "C3"])
print df
आउटपुट:
C1 C2 C3
0 1 2 3
1 a b c
एक नई पंक्ति जोड़ने दें, [10,11,12]
:
df = pd.DataFrame(np.array([[10,11,12]]), \
columns=["C1", "C2", "C3"]).append(df, ignore_index=True)
print df
आउटपुट:
C1 C2 C3
0 10 11 12
1 1 2 3
2 a b c
DataFrame से पंक्तियों को हटाएं / हटाएं
चलो पहले एक DataFrame उत्पन्न करते हैं:
df = pd.DataFrame(np.arange(10).reshape(5,2), columns=list('ab'))
print(df)
# Output:
# a b
# 0 0 1
# 1 2 3
# 2 4 5
# 3 6 7
# 4 8 9
अनुक्रमित के साथ ड्रॉप पंक्तियाँ: 0
और 4
drop([...], inplace=True)
विधि का उपयोग करके:
df.drop([0,4], inplace=True)
print(df)
# Output
# a b
# 1 2 3
# 2 4 5
# 3 6 7
अनुक्रमित के साथ ड्रॉप पंक्तियों: 0
और 4
df = drop([...])
विधि का उपयोग करके:
df = pd.DataFrame(np.arange(10).reshape(5,2), columns=list('ab'))
df = df.drop([0,4])
print(df)
# Output:
# a b
# 1 2 3
# 2 4 5
# 3 6 7
नकारात्मक चयन विधि का उपयोग करना:
df = pd.DataFrame(np.arange(10).reshape(5,2), columns=list('ab'))
df = df[~df.index.isin([0,4])]
print(df)
# Output:
# a b
# 1 2 3
# 2 4 5
# 3 6 7
राउटर कॉलम
# get a list of columns
cols = list(df)
# move the column to head of list using index, pop and insert
cols.insert(0, cols.pop(cols.index('listing')))
# use ix to reorder
df2 = df.ix[:, cols]