In [1]:
import pandas as pd
In [2]:
df = pd.DataFrame({'A': ['A1', 'A2', 'A3'],
'B': ['B1', 'B2', 'B3'],
'C': ['C1', 'C2', 'C3']},
index=['ONE', 'TWO', 'THREE'])
print(df)
In [3]:
df.loc['ONE'] = 0
print(df)
In [4]:
df.loc['FOUR'] = 0
df.loc['FIVE'] = ['A5', 'B5', 'C5']
print(df)
In [5]:
# df.loc['SIX'] = ['A6', 'B6']
# ValueError: cannot set a row with mismatched columns
In [6]:
s = pd.Series(['B6', 'C6', 'D6'], index=['B', 'C', 'D'], name='SIX')
print(s)
In [7]:
df.loc['XXX'] = df.loc['TWO'] + df.loc['THREE']
df.loc['YYY'] = s
df.loc['ZZZ'] = s.values
print(df)
In [8]:
df = pd.DataFrame({'A': ['A1', 'A2', 'A3'],
'B': ['B1', 'B2', 'B3'],
'C': ['C1', 'C2', 'C3']},
index=['ONE', 'TWO', 'THREE'])
In [9]:
# print(df.append(0))
# TypeError: cannot concatenate object of type '<class 'int'>'; only Series and DataFrame objs are valid
In [10]:
print(df.append([0, 1, 2]))
In [11]:
print(df.append({'A': 0, 'B': 1, 'C': 2}, ignore_index=True))
In [12]:
s = pd.Series(['A4', 'B4', 'C4'], index=df.columns, name='FOUR')
In [13]:
print(df.append(s))
In [14]:
s_mismatch = pd.Series(['B5', 'C5', 'D5'], index=['B', 'C', 'D'], name='FIVE')
In [15]:
print(df.append(s_mismatch))
In [16]:
print(df)
In [17]:
s_no_name = pd.Series(['B4', 'C4', 'D4'], index=['B', 'C', 'D'])
In [18]:
# print(df.append(s_no_name))
# TypeError: Can only append a Series if ignore_index=True or if the Series has a name
In [19]:
print(df.append(s_no_name, ignore_index=True))
In [20]:
print(df.append([s, s_mismatch]))
In [21]:
df2 = pd.DataFrame([['B6', 'C6', 'D6'], ['B7', 'C7', 'D7']],
index=['SIX', 'SEVEN'], columns=['B', 'C', 'D'])
print(df2)
In [22]:
print(df.append(df2))
In [23]:
# print(df.append([s, df2]))
# ValueError: all the input array dimensions for the concatenation axis must match exactly, but along dimension 1, the array at index 0 has size 5 and the array at index 1 has size 3
In [24]:
print(df.append(s).append(df2))
In [25]:
print(pd.concat([df, df2]))
In [26]:
print(pd.concat([df, df2], join='inner'))
In [27]:
print(df.append(s))
In [28]:
print(pd.concat([df, s]))
In [29]:
print(pd.DataFrame(s).T)
In [30]:
print(pd.concat([df, pd.DataFrame(s).T]))
In [31]:
print(df.T.assign(FOUR=0, FIVE=['A5', 'B5', 'C5']).T)
In [32]:
# df_insert = df.T.insert(0, 'FOUR', 0).T
# AttributeError: 'NoneType' object has no attribute 'T'
In [33]:
df_T = df.T
df_T.insert(0, 'FOUR', 0)
print(df_T.T)