python - 从另一个 python 文件导入单个 pandas 数据框列
问题描述
我正在尝试将其他数据框列从各种文件导入到一个文件中。
假设 df1、df2 和 df3 分别位于不同的 .py 文件中,但文件保存在同一个文件夹中。
即 df1 保存在 df1.py df2 保存在 df2.py df3 保存在 df3.py
我试图弄清楚如何将 df2 和 df3 中的列导入 df1 (有 7 行),即使所有数据帧都有不同的行数。
NaN 行应表示为 - (即破折号“-”)
df1 = pd.DataFrame()
df1['A'] = (1,22,13,41,2,56,79)
df1['B'] = ('B','S','S', 'S', 'S', 'B', 'B')
df1['C'] = (1.02, 1.01, 1.44, 1.05, 1.05, 1.12, 1.22)
df2 = pd.DataFrame()
df2['D'] = (11,65,8,34,56,18,91,34,89,35,3,9,15)
df2['E'] = ('E','R','Y', 'N', 'X', 'T','Y', 'N', 'X', 'T', 'D', 'T', 'D')
df2['F'] = (1.02, 1.01, 1.44, 1.05,1.02, 1.01, 1.44, 1.05, 1.05, 1.12, 1.22, 1.12, 1.22)
df3 = pd.DataFrame()
df3['G'] = (1,22,13)
df3['H'] = ('S','S', 'S')
df3['I'] = (1.05, 1.05, 1.12)
打印以下是我希望 df1 在导入后的样子
df1 = pd.DataFrame()
df1['A'] = (1,22,13,41,2,56,79)
df1['B'] = ('B','S','S', 'S', 'S', 'B', 'B')
df1['C'] = (1.02, 1.01, 1.44, 1.05, 1.05, 1.12, 1.22)
df1['D'] = (11,65,8,34,56,18,91)
df1['E'] = ('E','R','Y', 'N', 'X', 'T','Y')
df1['F'] = (1.02, 1.01, 1.44, 1.05,1.02, 1.01, 1.44)
df1['G'] = (1,22,13, '-', '-', '-', '-')
df1['H'] = ('S','S', 'S', '-', '-', '-', '-')
df1['I'] = (1.05, 1.05, 1.12, '-', '-', '-', '-')
print(df1)
解决方案
你可以试试:
import pandas as pd
import df1, df2, df3 # import files df1.py, df2.py and df3.py
print(pd.concat([df1.df1, df2.df2.iloc[:df1.df1.shape[0]], df3.df3], axis=1, sort=False).fillna('-'))
结果:
A B C D E F G H I
0 1 B 1.02 11 E 1.02 1 S 1.05
1 22 S 1.01 65 R 1.01 22 S 1.05
2 13 S 1.44 8 Y 1.44 13 S 1.12
3 41 S 1.05 34 N 1.05 - - -
4 2 S 1.05 56 X 1.02 - - -
5 56 B 1.12 18 T 1.01 - - -
6 79 B 1.22 91 Y 1.44 - - -
推荐阅读
- asp.net-mvc - 托管在 IIS 上的 ASP.NET MVC 应用程序在 50 个用户的压力测试中失败
- npm - libxmlsec1-dev 卸载 npm 和 npm 卸载 libxmlsec1-dev 为什么?
- vb.net - 尝试在 MD5 算法中处理消息块时算术溢出
- c# - 如何从 http 重定向到 https?
- python - 保持 python 日志记录脚本无限期运行的建议。脚本在几个小时后起作用
- asp.net-core - 带软删除的级联限制
- javascript - 更改检测不适用于文件上传
- clickhouse - Clickhouse:如何在 clickhouse 中使用“数据跳过索引”和“数据跳过索引操作”功能?
- android - 在android中使用Intent.ACTION_GET_CONTENT时是否可以隐藏谷歌驱动器?
- javascript - 是否可以从 android studio 访问控制台和本地存储?