ควรเป็นที่ทราบกันอย่างแพร่หลายมากขึ้นว่านามแฝงสตริง'ดัชนี'และ'คอลัมน์'สามารถใช้แทนจำนวนเต็ม 0/1 ได้ นามแฝงมีความชัดเจนมากขึ้นและช่วยให้ฉันจำได้ว่าการคำนวณเกิดขึ้นได้อย่างไร นามแฝงสำหรับ 'ดัชนี' ก็คือ'แถว'
เมื่อaxis='index'
ถูกใช้การคำนวณจะเกิดขึ้นในคอลัมน์ซึ่งทำให้สับสน แต่ฉันจำได้ว่ามันได้ผลลัพธ์ที่มีขนาดเท่ากับแถวอื่น
มาดูข้อมูลบนหน้าจอเพื่อดูว่าฉันกำลังพูดถึงอะไร:
df = pd.DataFrame(np.random.rand(10, 4), columns=list('abcd'))
a b c d
0 0.990730 0.567822 0.318174 0.122410
1 0.144962 0.718574 0.580569 0.582278
2 0.477151 0.907692 0.186276 0.342724
3 0.561043 0.122771 0.206819 0.904330
4 0.427413 0.186807 0.870504 0.878632
5 0.795392 0.658958 0.666026 0.262191
6 0.831404 0.011082 0.299811 0.906880
7 0.749729 0.564900 0.181627 0.211961
8 0.528308 0.394107 0.734904 0.961356
9 0.120508 0.656848 0.055749 0.290897
เมื่อเราต้องการหาค่าเฉลี่ยของคอลัมน์ทั้งหมดเราจะใช้axis='index'
เพื่อรับสิ่งต่อไปนี้:
df.mean(axis='index')
a 0.562664
b 0.478956
c 0.410046
d 0.546366
dtype: float64
ผลลัพธ์เดียวกันจะได้รับจาก:
df.mean()
df.mean(axis=0)
df.mean(axis='rows')
หากต้องการใช้การดำเนินการจากซ้ายไปขวาบนแถวให้ใช้แกน = 'คอลัมน์' ฉันจำได้โดยคิดว่าอาจมีการเพิ่มคอลัมน์เพิ่มเติมใน DataFrame ของฉัน:
df.mean(axis='columns')
0 0.499784
1 0.506596
2 0.478461
3 0.448741
4 0.590839
5 0.595642
6 0.512294
7 0.427054
8 0.654669
9 0.281000
dtype: float64
ผลลัพธ์เดียวกันจะได้รับจาก:
df.mean(axis=1)
เพิ่มแถวใหม่ด้วยแกน = 0 / ดัชนี / แถว
ลองใช้ผลลัพธ์เหล่านี้เพื่อเพิ่มแถวหรือคอลัมน์เพิ่มเติมเพื่อให้คำอธิบายสมบูรณ์ ดังนั้นเมื่อใดก็ตามที่ใช้แกน = 0 / ดัชนี / แถวก็เหมือนกับการได้รับแถวใหม่ของ DataFrame เพิ่มแถวกันเถอะ:
df.append(df.mean(axis='rows'), ignore_index=True)
a b c d
0 0.990730 0.567822 0.318174 0.122410
1 0.144962 0.718574 0.580569 0.582278
2 0.477151 0.907692 0.186276 0.342724
3 0.561043 0.122771 0.206819 0.904330
4 0.427413 0.186807 0.870504 0.878632
5 0.795392 0.658958 0.666026 0.262191
6 0.831404 0.011082 0.299811 0.906880
7 0.749729 0.564900 0.181627 0.211961
8 0.528308 0.394107 0.734904 0.961356
9 0.120508 0.656848 0.055749 0.290897
10 0.562664 0.478956 0.410046 0.546366
เพิ่มคอลัมน์ใหม่ด้วยแกน = 1 / คอลัมน์
ในทำนองเดียวกันเมื่อแกน = 1 / คอลัมน์จะสร้างข้อมูลที่สามารถสร้างเป็นคอลัมน์ของตัวเองได้อย่างง่ายดาย:
df.assign(e=df.mean(axis='columns'))
a b c d e
0 0.990730 0.567822 0.318174 0.122410 0.499784
1 0.144962 0.718574 0.580569 0.582278 0.506596
2 0.477151 0.907692 0.186276 0.342724 0.478461
3 0.561043 0.122771 0.206819 0.904330 0.448741
4 0.427413 0.186807 0.870504 0.878632 0.590839
5 0.795392 0.658958 0.666026 0.262191 0.595642
6 0.831404 0.011082 0.299811 0.906880 0.512294
7 0.749729 0.564900 0.181627 0.211961 0.427054
8 0.528308 0.394107 0.734904 0.961356 0.654669
9 0.120508 0.656848 0.055749 0.290897 0.281000
ดูเหมือนว่าคุณจะเห็นนามแฝงทั้งหมดที่มีตัวแปรส่วนตัวต่อไปนี้:
df._AXIS_ALIASES
{'rows': 0}
df._AXIS_NUMBERS
{'columns': 1, 'index': 0}
df._AXIS_NAMES
{0: 'index', 1: 'columns'}