MCPcopy
hub / github.com/pandas-dev/pandas / insert

Method insert

pandas/io/sql.py:1083–1129  ·  view source on GitHub ↗
(
        self,
        chunksize: int | None = None,
        method: Literal["multi"] | Callable | None = None,
    )

Source from the content-addressed store, hash-verified

1081 return column_names, data_list
1082
1083 def insert(
1084 self,
1085 chunksize: int | None = None,
1086 method: Literal["multi"] | Callable | None = None,
1087 ) -> int | None:
1088 # set insert method
1089 if method is None:
1090 exec_insert = self._execute_insert
1091 elif method == "multi":
1092 exec_insert = self._execute_insert_multi
1093 elif callable(method):
1094 exec_insert = partial(method, self)
1095 else:
1096 raise ValueError(f"Invalid parameter `method`: {method}")
1097
1098 keys, data_list = self.insert_data()
1099
1100 nrows = len(self.frame)
1101
1102 if nrows == 0:
1103 return 0
1104
1105 if chunksize is None:
1106 chunksize = nrows
1107 elif chunksize == 0:
1108 raise ValueError("chunksize argument should be non-zero")
1109
1110 chunks = (nrows // chunksize) + 1
1111 total_inserted = None
1112 with self.pd_sql.run_transaction() as conn:
1113 for i in range(chunks):
1114 start_i = i * chunksize
1115 end_i = min((i + 1) * chunksize, nrows)
1116 if start_i >= end_i:
1117 break
1118
1119 chunk_iter = zip(
1120 *(arr[start_i:end_i] for arr in data_list), strict=True
1121 )
1122 num_inserted = exec_insert(conn, keys, chunk_iter)
1123 # GH 46891
1124 if num_inserted is not None:
1125 if total_inserted is None:
1126 total_inserted = num_inserted
1127 else:
1128 total_inserted += num_inserted
1129 return total_inserted
1130
1131 def _query_iterator(
1132 self,

Callers 15

setupMethod · 0.45
time_insertMethod · 0.45
time_insert_middleMethod · 0.45
mainFunction · 0.45
conf.pyFile · 0.45
get_callableFunction · 0.45
process_axesMethod · 0.45
deleteMethod · 0.45
readMethod · 0.45
writeMethod · 0.45
_execute_insertMethod · 0.45

Calls 3

insert_dataMethod · 0.95
minFunction · 0.85
run_transactionMethod · 0.45