python-3.x - Python3.x,Pandas:根据 x 值创建 y 值列表
问题描述
我有两个由不同 x 值组成的数据集。如下所示。
import pandas as pd
data1=pd.csv_read('Data1.csv')
data2=pd.csv_read('Data2.csv')
print(data1)
data1_x data1_y1 data1_y2 data1_y3
-347.2498 0 2 8
-237.528509 0 3 7
-127.807218 0 0 6
-18.085927 11 5 0
print(data2)
data2_x data2_y1 data2_y2 data2_y3
-394.798507 2 0 0
-285.265994 1 0 0
-175.733482 0 0 1
-66.200969 4 0 0
我正在使用以下代码创建包含所有值的新 x。new_x=reduce(np.union1d, (data1.iloc[:,0], data1.iloc[:,0]))
print(new_x)
array([-394.799,-347.25,-285.266,-237.529,-175.733,-127.807,-66.201,-18.0859])
目前,我正在尝试为每个数据集创建一个新的 y 列表,如果存在相应的 x 值,则保持相同的 y 值,但如果最初没有相应的 x 值,则填充空白。例如,print(New_data2)
看起来像这样。
New_x_data2 New_y1_data2 New_y2_data2 New_y3_data2
-394.799 2 0 0
-347.25
-285.266 1 0 0
-237.529
-175.733 0 0 1
-127.807 0 0 6
-66.201 4 0 0
-18.0859 11 5 0
特别是,我迷失了如何获得新的 y 值。有任何想法吗?
解决方案
import pandas as pd
from re import sub
repl = lambda x : sub("data\d_(\w+)", "New_\\1_data2", x)
data1.rename(repl, axis = 'columns').append(data2.rename(repl, axis='columns')).sort_values('New_x_data2')
Out[1024]:
New_x_data2 New_y1_data2 New_y2_data2 New_y3_data2
0 -394.798507 2 0 0
0 -347.249800 0 2 8
1 -285.265994 1 0 0
1 -237.528509 0 3 7
2 -175.733482 0 0 1
2 -127.807218 0 0 6
3 -66.200969 4 0 0
3 -18.085927 11 5 0
推荐阅读
- google-cloud-platform - 使用 GCP 网络端点组进行容器原生负载平衡的不健康后端
- python - Python Tkinter - 如何将一个类中的小部件放到另一个类的窗口中
- java - 如何使用具有特定坐标的 javafx 绘制路径?
- xml - 使用 XSLT 1.0 模拟数据透视表
- string - lua string.find 无法识别子字符串
- javascript - 车把每个句子不循环
- c# - Fresh dotnet new mvc 项目@Linux - 无法验证 HTTPS 连接
- gtk - 在windows上设置Gtk开发
- bit-manipulation - 位操作:在一组位的最左角添加位
- javascript - 将 CSV 从实时 URL 解析为 HTML 表