我开发电子商务应用程序已经大约 3 个月了,最近我切换到 MacO。\n当我在 iOS 模拟器中运行代码时遇到问题\每次运行它时都会收到此消息。
\n\nCocoaPods' output:\n\xe2\x86\xb3\n Preparing\n Analyzing dependencies\n Inspecting targets to integrate\n Using `ARCHS` setting to build architectures of target `Pods-Runner`: (``)\n Fetching external sources\n -> Fetching podspec for `Flutter` from `Flutter`\n -> Fetching podspec for `image_picker` from `.symlinks/plugins/image_picker/ios`\n -> Fetching podspec for `path_provider` from `.symlinks/plugins/path_provider/ios`\n -> Fetching podspec for `shared_preferences` from `.symlinks/plugins/shared_preferences/ios`\n -> Fetching podspec for `sqflite` from `.symlinks/plugins/sqflite/ios`\n Resolving dependencies of `Podfile`\nError output from CocoaPods:\n\xe2\x86\xb3\n Ignoring ffi-1.15.4 because its extensions are not built. Try: …Run Code Online (Sandbox Code Playgroud) 我有相同长度的列表a, b, ,... 。c我想按照排序获得的顺序对所有这些进行排序a,即我可以执行装饰-排序-取消装饰模式
a, b, c = map(list, zip(*sorted(zip(a, b, c))))
Run Code Online (Sandbox Code Playgroud)
或类似的东西。但是,我希望列表就地排序(我假设将sorted传递给它的临时迭代器中的所有内容拉到临时列表中,然后zip填充到三个输出列表中,因此输入中的每个数据都被不必要地复制两次)无需创建临时对象。所以我的意思不是:
a_sorted, b_sorted, c_sorted = map(list, zip(*sorted(zip(a, b, c))))
a[:] = a_sorted
b[:] = b_sorted
c[:] = c_sorted
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
我正在使用 Pandas 数据框,并将趋势应用于最早的数据点,以尝试尽可能最好地填充缺失的历史数据。我知道迭代 Pandas 数据框是错误的,但我还没有找到替代方法来做到这一点,因为新值取决于下一个值。如果有人知道实现这一目标的更好方法,那就太好了!
示例 df:
Week no Data Trend
0 1 0.0 1.5
1 2 0.0 1.5
2 3 0.0 1.0
3 4 0.0 0.5
4 5 10.0 0.6
Run Code Online (Sandbox Code Playgroud)
我目前使用的代码:
for wk in range(len(df)-1, 0, -1):
if (df.loc[wk, 'Data'] != 0 and df.loc[wk-1, 'Data'] == 0
and not math.isnan(df.loc[wk, 'Trend'])):
df.loc[wk-1, 'Data'] = (df.loc[wk, 'Data']
*df.loc[wk, 'Trend'])
Run Code Online (Sandbox Code Playgroud)
结果:
Week no Data Trend
0 1 4.5 1.5
1 2 3.0 1.5
2 3 3.0 1.0
3 4 6.0 0.5 …Run Code Online (Sandbox Code Playgroud) compare我在 Pandas 文档中找到了该函数:
pandas.DataFrame.compare
DataFrame.compare(other, align_axis=1, keep_shape=False, keep_equal=False)
Run Code Online (Sandbox Code Playgroud)
def New_names(self, df_old, df_new):
#New records for insert
df_old_names = set(df_old['name'])
df_new_names = set(df_new['name'])
difference = df_new_names - df_old_names
coincidence = df_old_names - difference
exit_insert = df_new[df_new['name'].isin(difference)]
#Check old records
df_old_names_restrict = df_old[df_new.columns]
exit_update = df_new.compare(df_old_names_restrict)
return (exit_insert, exit_update)
Run Code Online (Sandbox Code Playgroud)
但它会引发以下错误:
Traceback (most recent call last): File
"C:/Users/shulya403/Shulya403_works/all_gid_2/Database/db_insert_pd.py",
line 203, in <module>
FillDB.Pruducts_to_SQL(df_new=FillDB.df_Products.head(20)) File "C:/Users/shulya403/Shulya403_works/all_gid_2/Database/db_insert_pd.py",
line 184, in Pruducts_to_SQL
df_select = self.New_names(self.Select_SQL_Products(), df_new)[0] File
"C:/Users/shulya403/Shulya403_works/all_gid_2/Database/db_insert_pd.py",
line 175, in New_names
exit_update = …Run Code Online (Sandbox Code Playgroud)