我有一个数据框:
s1 = pd.Series([5, 6, 7]) s2 = pd.Series([7, 8, 9]) df = pd.DataFrame([list(s1), list(s2)], columns = ["A", "B", "C"]) A B C 0 5 6 7 1 7 8 9 [2 rows x 3 columns]
我需要添加第一行 [2, 3, 4] 来获得:
A B C 0 2 3 4 1 5 6 7 2 7 8 9
我已经尝试过append()并实现了concat()这些功能,但找不到正确的方法。
append()
concat()
如何向数据框添加/插入系列?
pandas您可以使用pd.concat()或pd.DataFrame.loc[]将新行插入到 DataFrame 开头来添加新行。由于您想将该行添加[2, 3, 4]为第一行,因此以下是实现方法:
pandas
pd.concat()
pd.DataFrame.loc[]
[2, 3, 4]
ignore_index
您可以将新的 DataFrame(包含要插入的行)与现有 DataFrame 连接,然后重置索引。
import pandas as pd # Create the original DataFrame s1 = pd.Series([5, 6, 7]) s2 = pd.Series([7, 8, 9]) df = pd.DataFrame([list(s1), list(s2)], columns=["A", "B", "C"]) # Create the new row as a DataFrame new_row = pd.DataFrame([[2, 3, 4]], columns=["A", "B", "C"]) # Concatenate the new row at the top and reset index df = pd.concat([new_row, df], ignore_index=True) print(df)
loc[]
您还可以使用DataFrame.loc[]在开头插入新行,然后重新索引 DataFrame。
DataFrame.loc[]
import pandas as pd # Create the original DataFrame s1 = pd.Series([5, 6, 7]) s2 = pd.Series([7, 8, 9]) df = pd.DataFrame([list(s1), list(s2)], columns=["A", "B", "C"]) # Insert new row at the top df.loc[-1] = [2, 3, 4] # Add new row at index -1 df = df.sort_index().reset_index(drop=True) # Reset index print(df)
在这两种方法中,新行都[2, 3, 4]添加到开头,并且重新索引 DataFrame 以确保索引是连续的。