PERF: Some faster date/time string formatting (#46759) · pandas-dev/pandas@55d9dcf (original) (raw)

`@@ -39,6 +39,8 @@ def setup(self, connection):

`

39

39

`index=tm.makeStringIndex(N),

`

40

40

` )

`

41

41

`self.df.loc[1000:3000, "float_with_nan"] = np.nan

`

``

42

`+

self.df["date"] = self.df["datetime"].dt.date

`

``

43

`+

self.df["time"] = self.df["datetime"].dt.time

`

42

44

`self.df["datetime_string"] = self.df["datetime"].astype(str)

`

43

45

`self.df.to_sql(self.table_name, self.con, if_exists="replace")

`

44

46

``

`@@ -53,7 +55,16 @@ class WriteSQLDtypes:

`

53

55

``

54

56

`params = (

`

55

57

` ["sqlalchemy", "sqlite"],

`

56

``

`-

["float", "float_with_nan", "string", "bool", "int", "datetime"],

`

``

58

`+

[

`

``

59

`+

"float",

`

``

60

`+

"float_with_nan",

`

``

61

`+

"string",

`

``

62

`+

"bool",

`

``

63

`+

"int",

`

``

64

`+

"date",

`

``

65

`+

"time",

`

``

66

`+

"datetime",

`

``

67

`+

],

`

57

68

` )

`

58

69

`param_names = ["connection", "dtype"]

`

59

70

``

`@@ -78,6 +89,8 @@ def setup(self, connection, dtype):

`

78

89

`index=tm.makeStringIndex(N),

`

79

90

` )

`

80

91

`self.df.loc[1000:3000, "float_with_nan"] = np.nan

`

``

92

`+

self.df["date"] = self.df["datetime"].dt.date

`

``

93

`+

self.df["time"] = self.df["datetime"].dt.time

`

81

94

`self.df["datetime_string"] = self.df["datetime"].astype(str)

`

82

95

`self.df.to_sql(self.table_name, self.con, if_exists="replace")

`

83

96

``

`@@ -105,6 +118,8 @@ def setup(self):

`

105

118

`index=tm.makeStringIndex(N),

`

106

119

` )

`

107

120

`self.df.loc[1000:3000, "float_with_nan"] = np.nan

`

``

121

`+

self.df["date"] = self.df["datetime"].dt.date

`

``

122

`+

self.df["time"] = self.df["datetime"].dt.time

`

108

123

`self.df["datetime_string"] = self.df["datetime"].astype(str)

`

109

124

`self.df.to_sql(self.table_name, self.con, if_exists="replace")

`

110

125

``

`@@ -122,7 +137,16 @@ def time_read_sql_table_parse_dates(self):

`

122

137

``

123

138

`class ReadSQLTableDtypes:

`

124

139

``

125

``

`-

params = ["float", "float_with_nan", "string", "bool", "int", "datetime"]

`

``

140

`+

params = [

`

``

141

`+

"float",

`

``

142

`+

"float_with_nan",

`

``

143

`+

"string",

`

``

144

`+

"bool",

`

``

145

`+

"int",

`

``

146

`+

"date",

`

``

147

`+

"time",

`

``

148

`+

"datetime",

`

``

149

`+

]

`

126

150

`param_names = ["dtype"]

`

127

151

``

128

152

`def setup(self, dtype):

`

`@@ -141,6 +165,8 @@ def setup(self, dtype):

`

141

165

`index=tm.makeStringIndex(N),

`

142

166

` )

`

143

167

`self.df.loc[1000:3000, "float_with_nan"] = np.nan

`

``

168

`+

self.df["date"] = self.df["datetime"].dt.date

`

``

169

`+

self.df["time"] = self.df["datetime"].dt.time

`

144

170

`self.df["datetime_string"] = self.df["datetime"].astype(str)

`

145

171

`self.df.to_sql(self.table_name, self.con, if_exists="replace")

`

146

172

``