我有一个数据帧称为raw_df
:如何连接pandas.DataFrames列
columns = ['force0', 'distance0', 'force1', 'distance1']
raw_data = [{'force0': 1.2, 'distance0': 0.0, 'force1': 0.5, 'distance1': 0.0},
{'force0': 1.3, 'distance0': 0.1, 'force1': 0.6, 'distance1': 0.0},
{'force0': 1.4, 'distance0': 0.2, 'force1': 0.7, 'distance1': 0.3},
{'force0': 1.5, 'distance0': 0.5, 'force1': 0.8, 'distance1': 0.6}]
raw_df = pd.DataFrame(raw_data, columns=columns)
raw_df
看起来是这样的:
force0 distance0 force1 distance1
0 1.2 0.0 0.5 0.0
1 1.3 0.1 0.6 0.0
2 1.4 0.2 0.7 0.3
3 1.5 0.5 0.8 0.6
目前没有指标,但我想的距离列合并为一个索引,所以列是:
force0 force1
distance
0.0 1.2 0.5
0.0 NaN. 0.6
0.1 1.3 NaN
0.2 1.4 NaN
0.3 NaN 0.7
0.5 1.5 NaN
0.6 NaN 0.8
请注意,distance1 = 0.0时force1中有2个条目。
索引(距离)不应该排序:它们增加然后可变地减少,并且每个测试的原始顺序是重要的。
Stefan对我描述不清的问题发表了一个惊人的答案,但它似乎用其他数字填补了任何失踪的力量(这会误导人,因为这些测试中没有对这些距离进行力测量)。我使用np.nan
作为缺失值,因为我认为这是pandas
所做的。
我认为merge
或join
可能会做我所需要的但不能理解的the docs。
也许pandas.DataFrame
不是为这样的数据,我应该使用numpy.genfromtxt
代替,只是选择我需要在飞行中的列:我看不出有任何优势,使用上飞一个pandas.DataFrame
,如果我选择列(因为在这种情况下我没有使用索引)。
感谢您的任何帮助。
如果要处理原始数据帧的示例,会不错。 –
你的'test_ids'是什么? “距离1”,“距离2”等所有值都是唯一的吗? –
test_ids只是与测试编号对应的整数列表。例如,第一个是1,如在力1中 – blokeley