pd.DataFrame()
构造空 df,然后可以如下构建。
df = DataFrame()
df['A'] = [...]
df['B'] = [... for ...]
pd.DataFrame.from_records()
从词典构成的列表创建 df。
pd.read_csv(csv_file_path)
从 CSV 文件读取 df。
df.copy()
产生一个副本。df_new = pd.concat([df1, df2], axis=0, ignore_index)
拼接两个 df。
ignore_index=True
,将按先后顺序重新排列下标。axis=0
(默认)将垂直拼接;如果 1 将水平拼接。df_new = pd.join(df1, df2)
水平地拼接两个 df。
在水平拼接前,如果需要重命名下标,有两种方法:
COMP_A.columns = [("POLYU_%s" % col) for col in COMP_A]
COMP_B.columns = [("OURS_%s" % col) for col in COMP_B]
COMP_A.rename(columns = {'index': 'POLYU_index'}, inplace = True)
COMP_B.rename(columns = {'index': 'OURS_index'}, inplace = True)
pandas.DataFrame.merge — pandas 2.1.3 documentation
MERGED_DF = LEFT_DF.merge(RIGHT_DF, on, left_on, right_on, how)
on
(或者分别使用 left_on
, right_on
):表示对着合并行的键。how: {‘left’, ‘right’, ‘outer’, ‘inner’, ‘cross’}, default ‘inner’
表示合并的关系。如果用 inner
,取得就是双方键的交集;如果 left
,就只考虑 LEFT_DF
的键;以此类推。在尾部插入新行:可以使用 loc, df.loc[len(df)] = new_data
。
在中间插入新行:只能用拼接的方法。下面是一个例子。
import pandas as pd
data = {'A': [1, 2, 3, 4],
'B': ['foo', 'bar', 'baz', 'qux']}
df = pd.DataFrame(data)
# 要插入的新行数据
new_row_data = {'A': 2.5, 'B': 'new_value'}
# 使用切片将 DataFrame 分成两部分,并在中间插入新行
index_to_insert = 2 # 插入到第 3 行的位置
df = pd.concat([df.iloc[:index_to_insert], pd.DataFrame(new_row_data, index=[index_to_insert]), df.iloc[index_to_insert:]]).reset_index(drop=True)
# 打印插入后的 DataFrame
print(df)
插入新列并指定默认值:
df['new_name'] = 0
。df.insert(loc=df.columns.get_loc('B'), column='A', value=def_value)
,新增一列 'A' 并将其放置在 'B' 列之前。插入新列并指定各值:
df.insert(loc=df.columns.get_loc('B'), column='A', value=new_values)