python - 如何根据预先定义的行和列值从 DataFrame 中获取值
问题描述
我在python中有两个DataFrame,我试图df
根据日期和列名返回值,真正的DataFrame很长,所以必须使用某种循环来完成
df = pd.DataFrame({
'Avg1': [1, 2, 3, 4],
'Avg2': [3, 5, 1, 15],
'Date': ['2021-08-06', '2021-08-07', '2021-08-08', '2021-08-07']
})
平均1 | 平均2 | 日期 | |
---|---|---|---|
0 | 1 | 3 | 2021-08-06 |
1 | 2 | 5 | 2021-08-07 |
2 | 3 | 1 | 2021-08-08 |
3 | 4 | 15 | 2021-08-07 |
df2 = pd.DataFrame({
'Return Avg': ['Avg1', 'Avg2'],
'At Date': ['2021-08-08', '2021-08-07'],
'Returned values (what I want)': [3, 5]
})
平均回报 | 日期 | 返回值(我想要的) | |
---|---|---|---|
0 | 平均1 | 2021-08-08 | 3 |
1 | 平均2 | 2021-08-07 | 5 |
解决方案
我认为融化是你要找的。
df = pd.DataFrame({
'Avg1': [1, 2, 3, 4],
'Avg2': [3, 5, 1, 15],
'Date': ['2021-08-06', '2021-08-07', '2021-08-08', '2021-08-07']
})
然后 :
df.melt(id_vars=['Date'], value_vars=['Avg1', 'Avg2'])
Date variable value
0 2021-08-06 Avg1 1
1 2021-08-07 Avg1 2
2 2021-08-08 Avg1 3
3 2021-08-07 Avg1 4
4 2021-08-06 Avg2 3
5 2021-08-07 Avg2 5
6 2021-08-08 Avg2 1
7 2021-08-07 Avg2 15
推荐阅读
- java - 如何从 Firebase 中的两个不同集合中获取所有文档?
- asp.net-core - ASP.Net Core 从 FileStreamResult 返回 500 INTERNAL SERVER ERROR
- python - Pandas 将每小时索引的 df 除以每日索引的 df
- javascript - 如何按用户保存 Html 内容,包括输入?
- android - 如何使用单独的待处理意图创建多个分组通知
- jenkins - 错误:找不到 ID 为“${TEST}”的凭据条目
- elasticsearch - 在 Elasticsearch 中,如何优先考虑短语中的某些单词
- c++ - C++Builder 中的基本 Enter 键功能
- reactjs - Next.js 获取和维护所有组件的全局数据
- caddy - Caddy:如何通过 API 添加多个反向代理而不使用 Caddyfile?