python - 将 pandas 中的行相乘并添加到迭代中
问题描述
考虑以下数据框,
df = pd.DataFrame({'ID' : [1,2,3,4,5], 'Week' : ['WK1', 'WK2', 'WK3', 'WK4', 'WK5']})
print(df)
ID Week
0 1 WK1
1 2 WK2
2 3 WK3
3 4 WK4
4 5 WK5
什么是最Pythonic的方式来循环和复制每一行,同时将+1添加到周数,
所以基于前两个值,这将是我想要的结果。
ID Week
0 1 WK1
1 1 WK2
2 1 WK3
3 1 WK4
4 1 WK5
5 2 WK1
6 2 WK2
7 2 WK3
8 2 WK4
9 2 WK5
解决方案
那是笛卡尔积。使用理解并重建你的DataFrame
pd.DataFrame([(i, w) for i in df.ID for w in df.Week], columns=df.columns)
ID Week
0 1 WK1
1 1 WK2
2 1 WK3
3 1 WK4
4 1 WK5
5 2 WK1
6 2 WK2
7 2 WK3
8 2 WK4
9 2 WK5
10 3 WK1
11 3 WK2
12 3 WK3
13 3 WK4
14 3 WK5
15 4 WK1
16 4 WK2
17 4 WK3
18 4 WK4
19 4 WK5
20 5 WK1
21 5 WK2
22 5 WK3
23 5 WK4
24 5 WK5
如同
# empty list
a = []
for i in df.ID:
for w in df.Week:
a.append((i, w))
pd.DataFrame(a, columns=df.columns)
推荐阅读
- c++ - wchar_t 字符串数组的成员缺失
- python - 试图让 python 程序从网络抓取中打印出选定的统计数据
- python - 在指定索引上将两个数据帧相乘
- java - Java 异常 java.sql.SQLException: HikariDataSource HikariDataSource (HikariPool-1) 已关闭
- python - 无法 Webscrape 下拉项 [Python][beautifulsoup]
- reactjs - 在 React-Apollo-client 中获取重复响应
- javascript - 得到 $max 的字符串
- css - 材料步进控制 - 减少标题之间的空间
- amazon-ec2 - Jar 文件的图像未显示在网络中
- jquery - 数据表仅返回选择事件的最后一行